From 737f2aeac1fb19833585fc90a66b435f73112a1e Mon Sep 17 00:00:00 2001 From: Phani Date: Mon, 27 Feb 2017 16:31:00 -0800 Subject: [PATCH 01/63] drafted ML json schema and examples --- example/job/ml_model.json | 11 ++++ example/job/model/method/ml_workflow.json | 8 +++ .../job/model/method/workflow/ml_unit.json | 9 +++ .../method/workflow/ml_unit/_result.json | 31 ++++++++++ example/job/model/ml_method.json | 7 +++ example/job/theory/ml/regression.json | 7 +++ .../job/theory/ml/regression/precision.json | 3 + schema/job/ml_model.json | 34 +++++++++++ schema/job/model/method/ml_workflow.json | 21 +++++++ schema/job/model/method/workflow/ml_unit.json | 57 +++++++++++++++++++ .../method/workflow/ml_unit/_result.json | 39 +++++++++++++ schema/job/model/ml_data.json | 13 +++++ schema/job/model/ml_method.json | 31 ++++++++++ schema/job/theory/ml.json | 18 ++++++ schema/job/theory/ml/classification.json | 26 +++++++++ .../theory/ml/classification/precision.json | 17 ++++++ schema/job/theory/ml/regression.json | 25 ++++++++ .../job/theory/ml/regression/precision.json | 21 +++++++ 18 files changed, 378 insertions(+) create mode 100644 example/job/ml_model.json create mode 100644 example/job/model/method/ml_workflow.json create mode 100644 example/job/model/method/workflow/ml_unit.json create mode 100644 example/job/model/method/workflow/ml_unit/_result.json create mode 100644 example/job/model/ml_method.json create mode 100644 example/job/theory/ml/regression.json create mode 100644 example/job/theory/ml/regression/precision.json create mode 100644 schema/job/ml_model.json create mode 100644 schema/job/model/method/ml_workflow.json create mode 100644 schema/job/model/method/workflow/ml_unit.json create mode 100644 schema/job/model/method/workflow/ml_unit/_result.json create mode 100644 schema/job/model/ml_data.json create mode 100644 schema/job/model/ml_method.json create mode 100644 schema/job/theory/ml.json create mode 100644 schema/job/theory/ml/classification.json create mode 100644 schema/job/theory/ml/classification/precision.json create mode 100644 schema/job/theory/ml/regression.json create mode 100644 schema/job/theory/ml/regression/precision.json diff --git a/example/job/ml_model.json b/example/job/ml_model.json new file mode 100644 index 000000000..2f46ae450 --- /dev/null +++ b/example/job/ml_model.json @@ -0,0 +1,11 @@ +{ + "name": "model", + "type": "ml", + "subtype": "supervised", + "references": [ + "http://scikit-learn.org/stable/tutorial/machine_learning_map/index.html" + ], + "method": { + "...": "include(model/ml_method.json)" + } +} diff --git a/example/job/model/method/ml_workflow.json b/example/job/model/method/ml_workflow.json new file mode 100644 index 000000000..cd273d580 --- /dev/null +++ b/example/job/model/method/ml_workflow.json @@ -0,0 +1,8 @@ +{ + "units": [ + { + "...": "include(workflow/ml_unit.json)" + } + ], + "name": "property-prediction" +} diff --git a/example/job/model/method/workflow/ml_unit.json b/example/job/model/method/workflow/ml_unit.json new file mode 100644 index 000000000..462fb20be --- /dev/null +++ b/example/job/model/method/workflow/ml_unit.json @@ -0,0 +1,9 @@ +{ + "head": true, + "flowchartId": "1", + "name": "ml_predict", + "type": "predict", + "interface": { + "...": "include(ml_unit/ml_predict.json)" + } +} diff --git a/example/job/model/method/workflow/ml_unit/_result.json b/example/job/model/method/workflow/ml_unit/_result.json new file mode 100644 index 000000000..297475113 --- /dev/null +++ b/example/job/model/method/workflow/ml_unit/_result.json @@ -0,0 +1,31 @@ +{ + "results": [ + { + "name": "band_gaps", + "args": [ + { + "key": "model_coefficients", + "value": [ + -3.339e-01, + 2.555e-01, + -1.005e-02 + ] + }, + { + "key": "intercept", + "value": 0.45 + }, + { + "key": "score", + "value": 0.8 + + }, + { + "key": "model_data", + "value": "JSON formatted string of input data table" + } + + ] + } + ] +} diff --git a/example/job/model/ml_method.json b/example/job/model/ml_method.json new file mode 100644 index 000000000..f0c7dae76 --- /dev/null +++ b/example/job/model/ml_method.json @@ -0,0 +1,7 @@ +{ + "type": "regression", + "subtype": "linear_regression", + "workflow": { + "...": "include(method/ml_workflow.json)" + } +} diff --git a/example/job/theory/ml/regression.json b/example/job/theory/ml/regression.json new file mode 100644 index 000000000..347c22ecd --- /dev/null +++ b/example/job/theory/ml/regression.json @@ -0,0 +1,7 @@ +{ + "type": "regression", + "subtype":"linear_regression", + "precision":{ + "...": "include(theory/ml/regression/precision.json)" + } +} diff --git a/example/job/theory/ml/regression/precision.json b/example/job/theory/ml/regression/precision.json new file mode 100644 index 000000000..259c45447 --- /dev/null +++ b/example/job/theory/ml/regression/precision.json @@ -0,0 +1,3 @@ +{ + "score": 0.8 +} diff --git a/schema/job/ml_model.json b/schema/job/ml_model.json new file mode 100644 index 000000000..3c9a86aa6 --- /dev/null +++ b/schema/job/ml_model.json @@ -0,0 +1,34 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "ML model schema", + "properties": { + "type": { + "description": "general type of the model, eg. `ml`", + "type": "string" + }, + "subtype": { + "description": "general subtype of the model, eg. `supervised`", + "type": "string" + }, + "method": { + "$ref": "file:model/ml_method.json" + }, + "references": { + "type": "array", + "items": { + "description": "literature reference, webpage etc.", + "type": "string" + } + } + }, + "oneOf": [ + { + "$ref": "file:theory/ml.json" + } + ], + "required": [ + "type", + "subtype", + "method" + ] +} diff --git a/schema/job/model/method/ml_workflow.json b/schema/job/model/method/ml_workflow.json new file mode 100644 index 000000000..092fbdec5 --- /dev/null +++ b/schema/job/model/method/ml_workflow.json @@ -0,0 +1,21 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "ml workflow schema", + "type": "object", + "properties": { + "name": { + "description": "Name of the workflow. e.g. property-prediction", + "type": "string" + }, + "units": { + "description": "Contains the Units of the Workflow", + "type": "array", + "items": { + "$ref": "file:workflow/ml_unit.json" + } + } + }, + "required": [ + "name" + ] +} diff --git a/schema/job/model/method/workflow/ml_unit.json b/schema/job/model/method/workflow/ml_unit.json new file mode 100644 index 000000000..cb6528461 --- /dev/null +++ b/schema/job/model/method/workflow/ml_unit.json @@ -0,0 +1,57 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "ml unit schema", + "type": "object", + "properties": { + "type": { + "description": "type of the unit.", + "type": "string", + "enum": [ + "interface", + "modelfit", + "predict" + ] + }, + "name": { + "description": "name of the unit. e.g. ml_interface", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "results": { + "description": "Resulting properties extracted from the unit.", + "type": "array", + "items": { + "$ref": "file:ml_unit/_result.json" + } + }, + "interface": { + "description": "Contains information about the ML interface unit..", + "$ref": "file:ml_unit/ml_interface.json" + }, + "modelfit": { + "description": "Contains information about the assignment unit.", + "$ref": "file:ml_unit/ml_modelfit.json" + }, + "predict": { + "description": "Contains information about the condition unit.", + "$ref": "file:ml_unit/ml_predict.json" + } + }, + "required": [ + "type", + "name", + "head", + "flowchartId" + ] +} diff --git a/schema/job/model/method/workflow/ml_unit/_result.json b/schema/job/model/method/workflow/ml_unit/_result.json new file mode 100644 index 000000000..676595908 --- /dev/null +++ b/schema/job/model/method/workflow/ml_unit/_result.json @@ -0,0 +1,39 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "ml result schema", + "type": "object", + "properties": { + "name": { + "description": "Name of the output from the result", + "type": "string" + }, + "args": { + "description": "Specific arguments for the required result.", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "description": "Name of the argument.", + "type": "string" + }, + "value": { + "description": "Value of the argument.", + "type": [ + "array", + "number", + "string" + ] + } + }, + "required": [ + "key", + "value" + ] + } + } + }, + "required": [ + "name" + ] +} diff --git a/schema/job/model/ml_data.json b/schema/job/model/ml_data.json new file mode 100644 index 000000000..1df59fbb5 --- /dev/null +++ b/schema/job/model/ml_data.json @@ -0,0 +1,13 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "ml data schema", + "data": { + "type": { + "description": "JSON formatted string of pandas DataFrame with data used for the model", + "type": "string" + } + }, + "required": [ + "data" + ] +} diff --git a/schema/job/model/ml_method.json b/schema/job/model/ml_method.json new file mode 100644 index 000000000..1f405df75 --- /dev/null +++ b/schema/job/model/ml_method.json @@ -0,0 +1,31 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "ml method schema", + "properties": { + "type": { + "description": "general type of this method, eg. `regression`", + "type": "string" + }, + "subtype": { + "description": "general subtype of this method, eg. `linear regression`", + "type": "string" + }, + "workflow": { + "description": "ML workflow used inside this method.", + "$ref": "file:method/ml_workflow.json" + } + }, + "oneOf": [ + { + "$ref": "file:../theory/ml/regression.json" + }, + { + "$ref": "file:../theory/ml/classification.json" + } + ], + "required": [ + "type", + "sub_type", + "workflow" + ] +} diff --git a/schema/job/theory/ml.json b/schema/job/theory/ml.json new file mode 100644 index 000000000..86ea4625a --- /dev/null +++ b/schema/job/theory/ml.json @@ -0,0 +1,18 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "machine learning schema", + "description": "machine learning schema", + "properties": { + "type": { + "enum": [ + "ml" + ] + }, + "subtype": { + "enum": [ + "supervised", + "unsupervised" + ] + } + } +} diff --git a/schema/job/theory/ml/classification.json b/schema/job/theory/ml/classification.json new file mode 100644 index 000000000..693cf4de3 --- /dev/null +++ b/schema/job/theory/ml/classification.json @@ -0,0 +1,26 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "classification method schema", + "properties": { + "type": { + "enum": [ + "classification" + ] + }, + "subtype": { + "enum": [ + "logistic_regression", + "neural_network", + "decision_tree" + ] + }, + "precision": { + "$ref": "file:classification/precision.json" + } + }, + "required": [ + "type", + "subtype", + "precision" + ] +} diff --git a/schema/job/theory/ml/classification/precision.json b/schema/job/theory/ml/classification/precision.json new file mode 100644 index 000000000..ec24e9a05 --- /dev/null +++ b/schema/job/theory/ml/classification/precision.json @@ -0,0 +1,17 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "precision schema for classification", + "properties": { + "score": { + "description": "default: mean accuracy on the given test data and labels", + "type": "number" + }, + "cv_score": { + "description": "Cross validation score ", + "type": "number" + } + }, + "required": [ + "score" + ] +} diff --git a/schema/job/theory/ml/regression.json b/schema/job/theory/ml/regression.json new file mode 100644 index 000000000..7ba391335 --- /dev/null +++ b/schema/job/theory/ml/regression.json @@ -0,0 +1,25 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "regression method schema", + "properties": { + "type": { + "enum": [ + "regression" + ] + }, + "subtype": { + "enum": [ + "linear_regression", + "ridge_regression" + ] + }, + "precision": { + "$ref": "file:regression/precision.json" + } + }, + "required": [ + "type", + "subtype", + "precision" + ] +} diff --git a/schema/job/theory/ml/regression/precision.json b/schema/job/theory/ml/regression/precision.json new file mode 100644 index 000000000..fc5f6119a --- /dev/null +++ b/schema/job/theory/ml/regression/precision.json @@ -0,0 +1,21 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "precision schema for regression", + "properties": { + "score": { + "description": "default: variance score of the estimator", + "type": "number" + }, + "cv_score": { + "description": "Cross validation score ", + "type": "number" + }, + "mean_squared_error":{ + "description": "Mean squared error in regression", + "type": "number" + } + }, + "required": [ + "score" + ] +} From 42f6a38bfee90930a42cf25cb53cff925843ce2f Mon Sep 17 00:00:00 2001 From: Phani Date: Mon, 27 Feb 2017 16:44:56 -0800 Subject: [PATCH 02/63] method directory cleanup --- schema/job/model/ml_data.json | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 schema/job/model/ml_data.json diff --git a/schema/job/model/ml_data.json b/schema/job/model/ml_data.json deleted file mode 100644 index 1df59fbb5..000000000 --- a/schema/job/model/ml_data.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "ml data schema", - "data": { - "type": { - "description": "JSON formatted string of pandas DataFrame with data used for the model", - "type": "string" - } - }, - "required": [ - "data" - ] -} From c9d2293a4c72ee796a12758c17910def89d76928 Mon Sep 17 00:00:00 2001 From: Phani Date: Tue, 28 Feb 2017 11:32:00 -0800 Subject: [PATCH 03/63] feature/SOF-2002 added json schema for ML units and moved model parameters to methods --- example/job/model/method/ml_workflow.json | 5 +- .../method/workflow/ml_unit/_result.json | 25 +--------- .../method/workflow/ml_unit/ml_interface.json | 8 ++++ .../method/workflow/ml_unit/ml_modelfit.json | 12 +++++ .../method/workflow/ml_unit/ml_predict.json | 12 +++++ .../method/workflow/ml_unit_modelfit.json | 14 ++++++ .../{ml_unit.json => ml_unit_predict.json} | 6 ++- .../job/theory/ml/model_parameters/input_data | 1 + .../ml/model_parameters/model_paramters.json | 18 ++++++++ example/job/theory/ml/regression.json | 5 +- schema/job/model/method/workflow/ml_unit.json | 8 +++- .../method/workflow/ml_unit/ml_interface.json | 31 +++++++++++++ .../method/workflow/ml_unit/ml_modelfit.json | 36 +++++++++++++++ .../method/workflow/ml_unit/ml_predict.json | 36 +++++++++++++++ schema/job/model/ml_method.json | 2 +- schema/job/theory/ml/classification.json | 3 ++ .../theory/ml/classification/precision.json | 4 +- .../ml/model_parameters/model_parameters.json | 46 +++++++++++++++++++ schema/job/theory/ml/regression.json | 3 ++ .../job/theory/ml/regression/precision.json | 4 +- 20 files changed, 245 insertions(+), 34 deletions(-) create mode 100644 example/job/model/method/workflow/ml_unit/ml_interface.json create mode 100644 example/job/model/method/workflow/ml_unit/ml_modelfit.json create mode 100644 example/job/model/method/workflow/ml_unit/ml_predict.json create mode 100644 example/job/model/method/workflow/ml_unit_modelfit.json rename example/job/model/method/workflow/{ml_unit.json => ml_unit_predict.json} (62%) create mode 100644 example/job/theory/ml/model_parameters/input_data create mode 100644 example/job/theory/ml/model_parameters/model_paramters.json create mode 100644 schema/job/model/method/workflow/ml_unit/ml_interface.json create mode 100644 schema/job/model/method/workflow/ml_unit/ml_modelfit.json create mode 100644 schema/job/model/method/workflow/ml_unit/ml_predict.json create mode 100644 schema/job/theory/ml/model_parameters/model_parameters.json diff --git a/example/job/model/method/ml_workflow.json b/example/job/model/method/ml_workflow.json index cd273d580..ffdd36721 100644 --- a/example/job/model/method/ml_workflow.json +++ b/example/job/model/method/ml_workflow.json @@ -1,7 +1,10 @@ { "units": [ { - "...": "include(workflow/ml_unit.json)" + "...": "include(workflow/ml_unit_modelfit.json)" + }, + { + "...": "include(workflow/ml_unit_predict.json)" } ], "name": "property-prediction" diff --git a/example/job/model/method/workflow/ml_unit/_result.json b/example/job/model/method/workflow/ml_unit/_result.json index 297475113..81d52bc1d 100644 --- a/example/job/model/method/workflow/ml_unit/_result.json +++ b/example/job/model/method/workflow/ml_unit/_result.json @@ -2,30 +2,7 @@ "results": [ { "name": "band_gaps", - "args": [ - { - "key": "model_coefficients", - "value": [ - -3.339e-01, - 2.555e-01, - -1.005e-02 - ] - }, - { - "key": "intercept", - "value": 0.45 - }, - { - "key": "score", - "value": 0.8 - - }, - { - "key": "model_data", - "value": "JSON formatted string of input data table" - } - - ] + "value": 0.43 } ] } diff --git a/example/job/model/method/workflow/ml_unit/ml_interface.json b/example/job/model/method/workflow/ml_unit/ml_interface.json new file mode 100644 index 000000000..6d90b35aa --- /dev/null +++ b/example/job/model/method/workflow/ml_unit/ml_interface.json @@ -0,0 +1,8 @@ +{ + "input": [ + { + "name": "interface.input", + "content": "database = 'local' \n materials_specific_parameters \n chemical_system = True, elements = ['Si', 'Ge'] \n target_properties = ['band_gaps'] \n owner_id = None \n ML_specific_parameters \n preprocessing = 'stratify', train_data_size = 0.8, features_to_include = 'Si Ge lattice_volume', dropnan = 'True', fill_nan_with_zeros = 'True'\n" + } + ] +} diff --git a/example/job/model/method/workflow/ml_unit/ml_modelfit.json b/example/job/model/method/workflow/ml_unit/ml_modelfit.json new file mode 100644 index 000000000..26125b5eb --- /dev/null +++ b/example/job/model/method/workflow/ml_unit/ml_modelfit.json @@ -0,0 +1,12 @@ +{ + "input": [ + { + "name": "modelfit.input", + "content": "features = ['Si', 'Ge'] \n target_properties = ['band_gaps'] \n algorithm = 'linear_regression'\n model_specific_parameters = 'sample_weight'\n", + "inputData": { + "...": "include(../../../../theory/ml/model_parameters/input_data)" + } + + } + ] +} diff --git a/example/job/model/method/workflow/ml_unit/ml_predict.json b/example/job/model/method/workflow/ml_unit/ml_predict.json new file mode 100644 index 000000000..f34085797 --- /dev/null +++ b/example/job/model/method/workflow/ml_unit/ml_predict.json @@ -0,0 +1,12 @@ +{ + "input": [ + { + "name": "predict.input", + "content": "feature_vector = ['Si', 'Ge'] \n target_properties = ['band_gaps']\n", + "modelParameters": { + "...": "include(../../../../theory/ml/model_parameters/model_parameters.json)" + } + + } + ] +} diff --git a/example/job/model/method/workflow/ml_unit_modelfit.json b/example/job/model/method/workflow/ml_unit_modelfit.json new file mode 100644 index 000000000..08508c333 --- /dev/null +++ b/example/job/model/method/workflow/ml_unit_modelfit.json @@ -0,0 +1,14 @@ + +{ + "head": true, + "flowchartId": "1", + "name": "ml_modelfit", + "type": "modelfit", + "modelfit": { + "...": "include(ml_unit/ml_modelfit.json)" + }, + "modelParameters": { + "...": "include(../../../theory/ml/model_parameters.json)" + } + +} diff --git a/example/job/model/method/workflow/ml_unit.json b/example/job/model/method/workflow/ml_unit_predict.json similarity index 62% rename from example/job/model/method/workflow/ml_unit.json rename to example/job/model/method/workflow/ml_unit_predict.json index 462fb20be..4df2d6920 100644 --- a/example/job/model/method/workflow/ml_unit.json +++ b/example/job/model/method/workflow/ml_unit_predict.json @@ -1,9 +1,13 @@ + { "head": true, "flowchartId": "1", "name": "ml_predict", "type": "predict", - "interface": { + "predict": { "...": "include(ml_unit/ml_predict.json)" + }, + "results": { + "...": "include(ml_unit/_result.json)" } } diff --git a/example/job/theory/ml/model_parameters/input_data b/example/job/theory/ml/model_parameters/input_data new file mode 100644 index 000000000..37c451c98 --- /dev/null +++ b/example/job/theory/ml/model_parameters/input_data @@ -0,0 +1 @@ +"{\"Si\":{\"c8zG3XcnnTybfP3QQ\":0.6875,\"wWK2XCyivQrG8j34Z\":0.8125},\"Ge\":{\"c8zG3XcnnTybfP3QQ\":0.3125,\"wWK2XCyivQrG8j34Z\":0.1875},\"lattice_volume\":{\"c8zG3XcnnTybfP3QQ\":327.1127749111,\"wWK2XCyivQrG8j34Z\":327.1127749111}}" \ No newline at end of file diff --git a/example/job/theory/ml/model_parameters/model_paramters.json b/example/job/theory/ml/model_parameters/model_paramters.json new file mode 100644 index 000000000..872e9eb25 --- /dev/null +++ b/example/job/theory/ml/model_parameters/model_paramters.json @@ -0,0 +1,18 @@ +{ + "algorithm": "linear_regression", + "task": "property_prediction", + "property": "band_gaps", + "modelParameters":{ + "modelCoefficients":[ + -3.339e-01, + 2.555e-01, + -1.005e-02 + ], + "intercept": 0.45, + "score": 0.8, + "modelData" : { + "...": "(include(input_data)" + } + + } +} diff --git a/example/job/theory/ml/regression.json b/example/job/theory/ml/regression.json index 347c22ecd..1392fd397 100644 --- a/example/job/theory/ml/regression.json +++ b/example/job/theory/ml/regression.json @@ -2,6 +2,9 @@ "type": "regression", "subtype":"linear_regression", "precision":{ - "...": "include(theory/ml/regression/precision.json)" + "...": "include(regression/precision.json)" + }, + "data":{ + "...": "include(model_data/model_data.json)" } } diff --git a/schema/job/model/method/workflow/ml_unit.json b/schema/job/model/method/workflow/ml_unit.json index cb6528461..34805b085 100644 --- a/schema/job/model/method/workflow/ml_unit.json +++ b/schema/job/model/method/workflow/ml_unit.json @@ -35,16 +35,20 @@ "$ref": "file:ml_unit/_result.json" } }, + "modelParameters":{ + "description": "parameters from model fitting", + "$ref": "file:../../../theory/ml/model_parameters/model_parameters.json" + }, "interface": { "description": "Contains information about the ML interface unit..", "$ref": "file:ml_unit/ml_interface.json" }, "modelfit": { - "description": "Contains information about the assignment unit.", + "description": "Contains information about the ML modelfit unit.", "$ref": "file:ml_unit/ml_modelfit.json" }, "predict": { - "description": "Contains information about the condition unit.", + "description": "Contains information about the ML predict unit.", "$ref": "file:ml_unit/ml_predict.json" } }, diff --git a/schema/job/model/method/workflow/ml_unit/ml_interface.json b/schema/job/model/method/workflow/ml_unit/ml_interface.json new file mode 100644 index 000000000..86d4b7551 --- /dev/null +++ b/schema/job/model/method/workflow/ml_unit/ml_interface.json @@ -0,0 +1,31 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "ML Interface unit schema", + "type": "object", + "properties": { + "input": { + "description": "Unit's input.", + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "Input file name", + "type": "string" + }, + "content": { + "description": "Content of the input file. e.g. database='local' ...", + "type": "string" + } + }, + "required": [ + "name", + "content" + ] + } + } + }, + "required": [ + "input" + ] +} diff --git a/schema/job/model/method/workflow/ml_unit/ml_modelfit.json b/schema/job/model/method/workflow/ml_unit/ml_modelfit.json new file mode 100644 index 000000000..0e738bd59 --- /dev/null +++ b/schema/job/model/method/workflow/ml_unit/ml_modelfit.json @@ -0,0 +1,36 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "ML Modelfit unit schema", + "type": "object", + "properties": { + "input": { + "description": "Unit's input.", + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "Input file name", + "type": "string" + }, + "inputData":{ + "description": "input data for model training. JSON formatted string of input data", + "type": "string" + }, + "content": { + "description": "Content of the input file. e.g. features = \n targets = ...", + "type": "string" + } + }, + "required": [ + "name", + "inputData", + "content" + ] + } + } + }, + "required": [ + "input" + ] +} diff --git a/schema/job/model/method/workflow/ml_unit/ml_predict.json b/schema/job/model/method/workflow/ml_unit/ml_predict.json new file mode 100644 index 000000000..ded8bded6 --- /dev/null +++ b/schema/job/model/method/workflow/ml_unit/ml_predict.json @@ -0,0 +1,36 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "ML predict unit schema", + "type": "object", + "properties": { + "input": { + "description": "Unit's input.", + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "Input file name", + "type": "string" + }, + "modelParameters":{ + "description": "Model parameters. ", + "ref":"../../../theory/ml/model_parameters/model_parameters.json" + }, + "content": { + "description": "Content of the input file. e.g. features = \n targets = ...", + "type": "string" + } + }, + "required": [ + "name", + "modelParameters", + "content" + ] + } + } + }, + "required": [ + "input" + ] +} diff --git a/schema/job/model/ml_method.json b/schema/job/model/ml_method.json index 1f405df75..4bee8c4e1 100644 --- a/schema/job/model/ml_method.json +++ b/schema/job/model/ml_method.json @@ -25,7 +25,7 @@ ], "required": [ "type", - "sub_type", + "subtype", "workflow" ] } diff --git a/schema/job/theory/ml/classification.json b/schema/job/theory/ml/classification.json index 693cf4de3..5b299b75b 100644 --- a/schema/job/theory/ml/classification.json +++ b/schema/job/theory/ml/classification.json @@ -16,6 +16,9 @@ }, "precision": { "$ref": "file:classification/precision.json" + }, + "data":{ + "$ref":"file:model_parameters/model_parameters.json" } }, "required": [ diff --git a/schema/job/theory/ml/classification/precision.json b/schema/job/theory/ml/classification/precision.json index ec24e9a05..eec6b425e 100644 --- a/schema/job/theory/ml/classification/precision.json +++ b/schema/job/theory/ml/classification/precision.json @@ -6,8 +6,8 @@ "description": "default: mean accuracy on the given test data and labels", "type": "number" }, - "cv_score": { - "description": "Cross validation score ", + "cvScore": { + "description": "Cross validation score", "type": "number" } }, diff --git a/schema/job/theory/ml/model_parameters/model_parameters.json b/schema/job/theory/ml/model_parameters/model_parameters.json new file mode 100644 index 000000000..f87af3885 --- /dev/null +++ b/schema/job/theory/ml/model_parameters/model_parameters.json @@ -0,0 +1,46 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "ML model data schema", + "properties": { + "algorithm": { + "type": "string", + "description": "name of the ML algorithm. Example: linear_regression" + }, + "task": { + "type": "string", + "description": "description of ML task. Example: property prediction" + }, + "property": { + "type": "string", + "description": "name of the predicted or optimized characteristic" + }, + "modelParameters": { + "type": "object", + "description": "parameters of the fitted model. Example: regression model coefficients, score, intercept and data", + "properties": { + "modelCoefficients": { + "type": "array", + "description": "weights/coefficients of the function from linear or non-linear fit" + }, + "intercept": { + "type": "number", + "description": "intercept from the linear fit of data points" + }, + "score":{ + "type": "number", + "description": "metric for accuracy of the model" + }, + "modelData": { + "type": "string", + "description": "JSON formatted string of input data used for model fitting" + } + } + } + }, + "required": [ + "algorithm", + "task", + "property", + "modelParameters" + ] +} diff --git a/schema/job/theory/ml/regression.json b/schema/job/theory/ml/regression.json index 7ba391335..b249b9866 100644 --- a/schema/job/theory/ml/regression.json +++ b/schema/job/theory/ml/regression.json @@ -15,6 +15,9 @@ }, "precision": { "$ref": "file:regression/precision.json" + }, + "data":{ + "$ref":"file:model_parameters/model_parameters.json" } }, "required": [ diff --git a/schema/job/theory/ml/regression/precision.json b/schema/job/theory/ml/regression/precision.json index fc5f6119a..4f7586843 100644 --- a/schema/job/theory/ml/regression/precision.json +++ b/schema/job/theory/ml/regression/precision.json @@ -6,11 +6,11 @@ "description": "default: variance score of the estimator", "type": "number" }, - "cv_score": { + "cvScore": { "description": "Cross validation score ", "type": "number" }, - "mean_squared_error":{ + "meanSquaredError":{ "description": "Mean squared error in regression", "type": "number" } From 12304a225c7aae1944beda2c7ac8c376f89f1ce7 Mon Sep 17 00:00:00 2001 From: Phani Date: Sun, 5 Mar 2017 22:41:58 -0800 Subject: [PATCH 04/63] Adjusted JSON Schema to include ML units --- example/job/model/method/ml_workflow.json | 7 ++- example/job/model/method/workflow/ml_fit.json | 11 ++++ .../model/method/workflow/ml_interface.json | 9 +++ .../job/model/method/workflow/ml_predict.json | 9 +++ .../method/workflow/ml_unit_modelfit.json | 14 ----- .../method/workflow/ml_unit_predict.json | 13 ---- .../job/model/method/workflow/unit/fit.json | 14 +++++ .../model/method/workflow/unit/interface.json | 27 ++++++++ .../model/method/workflow/unit/predict.json | 10 +++ example/job/model/ml_method.json | 2 +- example/job/theory/ml/prediction.json | 10 +++ .../{regression => prediction}/precision.json | 0 example/job/theory/ml/regression.json | 10 --- schema/job/ml_model.json | 34 ----------- schema/job/model.json | 3 + schema/job/model/method.json | 6 ++ schema/job/model/method/ml_workflow.json | 21 ------- schema/job/model/method/workflow/ml_unit.json | 61 ------------------- schema/job/model/method/workflow/unit.json | 26 +++++++- .../job/model/method/workflow/unit/fit.json | 35 +++++++++++ .../model/method/workflow/unit/interface.json | 57 +++++++++++++++++ .../model/method/workflow/unit/predict.json | 26 ++++++++ .../model/method/workflow/unit/transform.json | 31 ++++++++++ schema/job/model/ml_method.json | 31 ---------- .../ml/{regression.json => prediction.json} | 6 +- .../{regression => prediction}/precision.json | 0 26 files changed, 282 insertions(+), 191 deletions(-) create mode 100644 example/job/model/method/workflow/ml_fit.json create mode 100644 example/job/model/method/workflow/ml_interface.json create mode 100644 example/job/model/method/workflow/ml_predict.json delete mode 100644 example/job/model/method/workflow/ml_unit_modelfit.json delete mode 100644 example/job/model/method/workflow/ml_unit_predict.json create mode 100644 example/job/model/method/workflow/unit/fit.json create mode 100644 example/job/model/method/workflow/unit/interface.json create mode 100644 example/job/model/method/workflow/unit/predict.json create mode 100644 example/job/theory/ml/prediction.json rename example/job/theory/ml/{regression => prediction}/precision.json (100%) delete mode 100644 example/job/theory/ml/regression.json delete mode 100644 schema/job/ml_model.json delete mode 100644 schema/job/model/method/ml_workflow.json delete mode 100644 schema/job/model/method/workflow/ml_unit.json create mode 100644 schema/job/model/method/workflow/unit/fit.json create mode 100644 schema/job/model/method/workflow/unit/interface.json create mode 100644 schema/job/model/method/workflow/unit/predict.json create mode 100644 schema/job/model/method/workflow/unit/transform.json delete mode 100644 schema/job/model/ml_method.json rename schema/job/theory/ml/{regression.json => prediction.json} (80%) rename schema/job/theory/ml/{regression => prediction}/precision.json (100%) diff --git a/example/job/model/method/ml_workflow.json b/example/job/model/method/ml_workflow.json index ffdd36721..93dc742c6 100644 --- a/example/job/model/method/ml_workflow.json +++ b/example/job/model/method/ml_workflow.json @@ -1,10 +1,13 @@ { "units": [ { - "...": "include(workflow/ml_unit_modelfit.json)" + "...": "include(workflow/ml_interface.json)" }, { - "...": "include(workflow/ml_unit_predict.json)" + "...": "include(workflow/ml_fit.json)" + }, + { + "...": "include(workflow/ml_predict.json)" } ], "name": "property-prediction" diff --git a/example/job/model/method/workflow/ml_fit.json b/example/job/model/method/workflow/ml_fit.json new file mode 100644 index 000000000..bb5766d90 --- /dev/null +++ b/example/job/model/method/workflow/ml_fit.json @@ -0,0 +1,11 @@ + +{ + "head": false, + "flowchartId": "2", + "name": "ModelFit", + "type": "fit", + "fit": { + "...": "include(unit/fit.json)" + } + +} diff --git a/example/job/model/method/workflow/ml_interface.json b/example/job/model/method/workflow/ml_interface.json new file mode 100644 index 000000000..8ad780176 --- /dev/null +++ b/example/job/model/method/workflow/ml_interface.json @@ -0,0 +1,9 @@ +{ + "head": true, + "flowchartId": "1", + "name": "MLInterface", + "type": "interface", + "interface": { + "...": "include(unit/interface.json)" + } +} diff --git a/example/job/model/method/workflow/ml_predict.json b/example/job/model/method/workflow/ml_predict.json new file mode 100644 index 000000000..152444918 --- /dev/null +++ b/example/job/model/method/workflow/ml_predict.json @@ -0,0 +1,9 @@ +{ + "head": false, + "flowchartId": "3", + "name": "Predict", + "type": "predict", + "predict": { + "...": "include(unit/predict.json)" + } +} diff --git a/example/job/model/method/workflow/ml_unit_modelfit.json b/example/job/model/method/workflow/ml_unit_modelfit.json deleted file mode 100644 index 08508c333..000000000 --- a/example/job/model/method/workflow/ml_unit_modelfit.json +++ /dev/null @@ -1,14 +0,0 @@ - -{ - "head": true, - "flowchartId": "1", - "name": "ml_modelfit", - "type": "modelfit", - "modelfit": { - "...": "include(ml_unit/ml_modelfit.json)" - }, - "modelParameters": { - "...": "include(../../../theory/ml/model_parameters.json)" - } - -} diff --git a/example/job/model/method/workflow/ml_unit_predict.json b/example/job/model/method/workflow/ml_unit_predict.json deleted file mode 100644 index 4df2d6920..000000000 --- a/example/job/model/method/workflow/ml_unit_predict.json +++ /dev/null @@ -1,13 +0,0 @@ - -{ - "head": true, - "flowchartId": "1", - "name": "ml_predict", - "type": "predict", - "predict": { - "...": "include(ml_unit/ml_predict.json)" - }, - "results": { - "...": "include(ml_unit/_result.json)" - } -} diff --git a/example/job/model/method/workflow/unit/fit.json b/example/job/model/method/workflow/unit/fit.json new file mode 100644 index 000000000..7d15b7e92 --- /dev/null +++ b/example/job/model/method/workflow/unit/fit.json @@ -0,0 +1,14 @@ +{ + "compute": null, + "input": [ + { + "algorithm": "linear_regression", + "fitParameters": [ + "sample_weight" + ], + "targetProperties":[ + "band_gaps" + ] + } + ] +} diff --git a/example/job/model/method/workflow/unit/interface.json b/example/job/model/method/workflow/unit/interface.json new file mode 100644 index 000000000..534075c27 --- /dev/null +++ b/example/job/model/method/workflow/unit/interface.json @@ -0,0 +1,27 @@ +{ + "compute": null, + "input": [ + { + "chemicalSystem": [ + "Si", + "Ge" + ], + "superset": "false", + "databases": [ + "ExabyteDB" + ], + "targetMaterials":[ + "Si5Ge11" + ], + "features":[ + "Si", + "Ge", + "density" + ], + "targetProperties":[ + "band_gaps" + ], + "owner" : "paxJukXpDBiSRjfRZ" + } + ] +} diff --git a/example/job/model/method/workflow/unit/predict.json b/example/job/model/method/workflow/unit/predict.json new file mode 100644 index 000000000..1a01ef961 --- /dev/null +++ b/example/job/model/method/workflow/unit/predict.json @@ -0,0 +1,10 @@ +{ + "compute": null, + "input": [ + { + "targetProperties":[ + "band_gaps" + ] + } + ] +} diff --git a/example/job/model/ml_method.json b/example/job/model/ml_method.json index f0c7dae76..a79eb93d7 100644 --- a/example/job/model/ml_method.json +++ b/example/job/model/ml_method.json @@ -1,5 +1,5 @@ { - "type": "regression", + "type": "prediction", "subtype": "linear_regression", "workflow": { "...": "include(method/ml_workflow.json)" diff --git a/example/job/theory/ml/prediction.json b/example/job/theory/ml/prediction.json new file mode 100644 index 000000000..0bbfe1db4 --- /dev/null +++ b/example/job/theory/ml/prediction.json @@ -0,0 +1,10 @@ +{ + "type": "prediction", + "subtype":"linear_regression", + "precision":{ + "...": "include(prediction/precision.json)" + }, + "data":{ + "...": "include(model_parameters/input_data.json)" + } +} diff --git a/example/job/theory/ml/regression/precision.json b/example/job/theory/ml/prediction/precision.json similarity index 100% rename from example/job/theory/ml/regression/precision.json rename to example/job/theory/ml/prediction/precision.json diff --git a/example/job/theory/ml/regression.json b/example/job/theory/ml/regression.json deleted file mode 100644 index 1392fd397..000000000 --- a/example/job/theory/ml/regression.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "regression", - "subtype":"linear_regression", - "precision":{ - "...": "include(regression/precision.json)" - }, - "data":{ - "...": "include(model_data/model_data.json)" - } -} diff --git a/schema/job/ml_model.json b/schema/job/ml_model.json deleted file mode 100644 index 3c9a86aa6..000000000 --- a/schema/job/ml_model.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "ML model schema", - "properties": { - "type": { - "description": "general type of the model, eg. `ml`", - "type": "string" - }, - "subtype": { - "description": "general subtype of the model, eg. `supervised`", - "type": "string" - }, - "method": { - "$ref": "file:model/ml_method.json" - }, - "references": { - "type": "array", - "items": { - "description": "literature reference, webpage etc.", - "type": "string" - } - } - }, - "oneOf": [ - { - "$ref": "file:theory/ml.json" - } - ], - "required": [ - "type", - "subtype", - "method" - ] -} diff --git a/schema/job/model.json b/schema/job/model.json index 0feea3315..b2be4ea63 100644 --- a/schema/job/model.json +++ b/schema/job/model.json @@ -27,6 +27,9 @@ "oneOf": [ { "$ref": "file:theory/dft.json" + }, + { + "$ref": "file:theory/ml.json" } ], "required": [ diff --git a/schema/job/model/method.json b/schema/job/model/method.json index f502935f7..74c134ee3 100644 --- a/schema/job/model/method.json +++ b/schema/job/model/method.json @@ -28,6 +28,12 @@ }, { "$ref": "file:../theory/dft/local-orbital.json" + }, + { + "$ref": "file:../theory/ml/prediction.json" + }, + { + "$ref": "file:../theory/ml/classification.json" } ], "required": [ diff --git a/schema/job/model/method/ml_workflow.json b/schema/job/model/method/ml_workflow.json deleted file mode 100644 index 092fbdec5..000000000 --- a/schema/job/model/method/ml_workflow.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "ml workflow schema", - "type": "object", - "properties": { - "name": { - "description": "Name of the workflow. e.g. property-prediction", - "type": "string" - }, - "units": { - "description": "Contains the Units of the Workflow", - "type": "array", - "items": { - "$ref": "file:workflow/ml_unit.json" - } - } - }, - "required": [ - "name" - ] -} diff --git a/schema/job/model/method/workflow/ml_unit.json b/schema/job/model/method/workflow/ml_unit.json deleted file mode 100644 index 34805b085..000000000 --- a/schema/job/model/method/workflow/ml_unit.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "ml unit schema", - "type": "object", - "properties": { - "type": { - "description": "type of the unit.", - "type": "string", - "enum": [ - "interface", - "modelfit", - "predict" - ] - }, - "name": { - "description": "name of the unit. e.g. ml_interface", - "type": "string" - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "results": { - "description": "Resulting properties extracted from the unit.", - "type": "array", - "items": { - "$ref": "file:ml_unit/_result.json" - } - }, - "modelParameters":{ - "description": "parameters from model fitting", - "$ref": "file:../../../theory/ml/model_parameters/model_parameters.json" - }, - "interface": { - "description": "Contains information about the ML interface unit..", - "$ref": "file:ml_unit/ml_interface.json" - }, - "modelfit": { - "description": "Contains information about the ML modelfit unit.", - "$ref": "file:ml_unit/ml_modelfit.json" - }, - "predict": { - "description": "Contains information about the ML predict unit.", - "$ref": "file:ml_unit/ml_predict.json" - } - }, - "required": [ - "type", - "name", - "head", - "flowchartId" - ] -} diff --git a/schema/job/model/method/workflow/unit.json b/schema/job/model/method/workflow/unit.json index 42f76d8a8..ef2261909 100644 --- a/schema/job/model/method/workflow/unit.json +++ b/schema/job/model/method/workflow/unit.json @@ -12,7 +12,11 @@ "reduce", "assignment", "condition", - "exit" + "exit", + "interface", + "fit", + "predict", + "transform" ] }, "name": { @@ -68,6 +72,10 @@ "$ref": "file:unit/_result.json" } }, + "modelParameters":{ + "description": "parameters from Machine Learning model fitting", + "$ref": "file:../../../theory/ml/model_parameters/model_parameters.json" + }, "execution": { "description": "Contains information about the execution unit..", "$ref": "file:unit/execution.json" @@ -83,6 +91,22 @@ "map": { "description": "Contains information about the map unit.", "$ref": "file:unit/map.json" + }, + "interface": { + "description": "Contains information about the Machine Learning interface unit.", + "$ref": "file:unit/interface.json" + }, + "fit": { + "description": "Contains information about the Machine Learning model fit unit.", + "$ref": "file:unit/fit.json" + }, + "predict": { + "description": "Contains information about the Machine Learning property predict unit.", + "$ref": "file:unit/predict.json" + }, + "transform": { + "description": "Contains information about the Machine Learning data transform unit.", + "$ref": "file:unit/transform.json" } }, "required": [ diff --git a/schema/job/model/method/workflow/unit/fit.json b/schema/job/model/method/workflow/unit/fit.json new file mode 100644 index 000000000..9d4872157 --- /dev/null +++ b/schema/job/model/method/workflow/unit/fit.json @@ -0,0 +1,35 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "ML Fit unit schema", + "type": "object", + "properties": { + "input": { + "description": "Unit's input.", + "type": "array", + "items": { + "type": "object", + "properties": { + "algorithm": { + "description": "Algorithm name", + "type": "string" + }, + "fitParameters": { + "description": "Additional paramaters used for model fitting", + "type": "array" + }, + "targetProperties": { + "description": "Target properties to predict", + "type": "array" + } + }, + "required": [ + "algorithm", + "targetProperties" + ] + } + } + }, + "required": [ + "input" + ] +} diff --git a/schema/job/model/method/workflow/unit/interface.json b/schema/job/model/method/workflow/unit/interface.json new file mode 100644 index 000000000..a10b8aab9 --- /dev/null +++ b/schema/job/model/method/workflow/unit/interface.json @@ -0,0 +1,57 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "ML Interface unit schema", + "type": "object", + "properties": { + "input": { + "description": "Unit's input.", + "type": "array", + "items": { + "type": "object", + "properties": { + "trainingMaterials": { + "description": "List of training materials. Eg: ['Si3Ge5', 'SiGe']", + "type": "array" + }, + "chemicalSystem": { + "description": "List of elements in chemical system. Eg: ['Si', 'Ge']", + "type": "array" + }, + "superset": { + "description": "Input to define the list of materials formed by the elements in chemical system", + "type": "boolean" + }, + "databases": { + "description": "List of databases to get data from", + "type": "array" + }, + "features": { + "description": "List of features to use in training. Example: descriptive properties", + "type": "array" + }, + "targetMaterials": { + "description": "List of target materials. Eg: ['Si3Ge5', 'SiGe']", + "type": "array" + }, + "targetProperties": { + "description": "List of target properties", + "type": "array" + }, + "owner":{ + "description": "Exabyte ID of the material owner", + "type": "string" + } + }, + "required": [ + "chemicalSystem", + "databases", + "targetMaterials", + "targetProperties" + ] + } + } + }, + "required": [ + "input" + ] +} diff --git a/schema/job/model/method/workflow/unit/predict.json b/schema/job/model/method/workflow/unit/predict.json new file mode 100644 index 000000000..763dd5d90 --- /dev/null +++ b/schema/job/model/method/workflow/unit/predict.json @@ -0,0 +1,26 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "ML Predict unit schema", + "type": "object", + "properties": { + "input": { + "description": "Unit's input.", + "type": "array", + "items": { + "type": "object", + "properties": { + "targetProperties": { + "description": "Target properties to predict", + "type": "array" + } + }, + "required": [ + "targetProperties" + ] + } + } + }, + "required": [ + "input" + ] +} diff --git a/schema/job/model/method/workflow/unit/transform.json b/schema/job/model/method/workflow/unit/transform.json new file mode 100644 index 000000000..ee3c1a3d1 --- /dev/null +++ b/schema/job/model/method/workflow/unit/transform.json @@ -0,0 +1,31 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "ML Transform unit schema", + "type": "object", + "properties": { + "input": { + "description": "Unit's input.", + "type": "array", + "items": { + "type": "object", + "properties": { + "algorithm": { + "description": "Algorithm name", + "type": "string" + }, + "fitParameters": { + "description": "Additional paramaters used for model fitting", + "type": "array" + } + }, + "required": [ + "algorithm", + "fitParameters" + ] + } + } + }, + "required": [ + "input" + ] +} diff --git a/schema/job/model/ml_method.json b/schema/job/model/ml_method.json deleted file mode 100644 index 4bee8c4e1..000000000 --- a/schema/job/model/ml_method.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "ml method schema", - "properties": { - "type": { - "description": "general type of this method, eg. `regression`", - "type": "string" - }, - "subtype": { - "description": "general subtype of this method, eg. `linear regression`", - "type": "string" - }, - "workflow": { - "description": "ML workflow used inside this method.", - "$ref": "file:method/ml_workflow.json" - } - }, - "oneOf": [ - { - "$ref": "file:../theory/ml/regression.json" - }, - { - "$ref": "file:../theory/ml/classification.json" - } - ], - "required": [ - "type", - "subtype", - "workflow" - ] -} diff --git a/schema/job/theory/ml/regression.json b/schema/job/theory/ml/prediction.json similarity index 80% rename from schema/job/theory/ml/regression.json rename to schema/job/theory/ml/prediction.json index b249b9866..d30a64387 100644 --- a/schema/job/theory/ml/regression.json +++ b/schema/job/theory/ml/prediction.json @@ -1,10 +1,10 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "regression method schema", + "title": "prediction method schema", "properties": { "type": { "enum": [ - "regression" + "prediction" ] }, "subtype": { @@ -14,7 +14,7 @@ ] }, "precision": { - "$ref": "file:regression/precision.json" + "$ref": "file:prediction/precision.json" }, "data":{ "$ref":"file:model_parameters/model_parameters.json" diff --git a/schema/job/theory/ml/regression/precision.json b/schema/job/theory/ml/prediction/precision.json similarity index 100% rename from schema/job/theory/ml/regression/precision.json rename to schema/job/theory/ml/prediction/precision.json From a94f27b1ef50ef2637535ad34daf22d0018c31b1 Mon Sep 17 00:00:00 2001 From: Phani Date: Sun, 5 Mar 2017 23:02:04 -0800 Subject: [PATCH 05/63] deleted old ML units --- .../method/workflow/ml_unit/_result.json | 39 ------------------- .../method/workflow/ml_unit/ml_interface.json | 31 --------------- .../method/workflow/ml_unit/ml_modelfit.json | 36 ----------------- .../method/workflow/ml_unit/ml_predict.json | 36 ----------------- 4 files changed, 142 deletions(-) delete mode 100644 schema/job/model/method/workflow/ml_unit/_result.json delete mode 100644 schema/job/model/method/workflow/ml_unit/ml_interface.json delete mode 100644 schema/job/model/method/workflow/ml_unit/ml_modelfit.json delete mode 100644 schema/job/model/method/workflow/ml_unit/ml_predict.json diff --git a/schema/job/model/method/workflow/ml_unit/_result.json b/schema/job/model/method/workflow/ml_unit/_result.json deleted file mode 100644 index 676595908..000000000 --- a/schema/job/model/method/workflow/ml_unit/_result.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "ml result schema", - "type": "object", - "properties": { - "name": { - "description": "Name of the output from the result", - "type": "string" - }, - "args": { - "description": "Specific arguments for the required result.", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "description": "Name of the argument.", - "type": "string" - }, - "value": { - "description": "Value of the argument.", - "type": [ - "array", - "number", - "string" - ] - } - }, - "required": [ - "key", - "value" - ] - } - } - }, - "required": [ - "name" - ] -} diff --git a/schema/job/model/method/workflow/ml_unit/ml_interface.json b/schema/job/model/method/workflow/ml_unit/ml_interface.json deleted file mode 100644 index 86d4b7551..000000000 --- a/schema/job/model/method/workflow/ml_unit/ml_interface.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "ML Interface unit schema", - "type": "object", - "properties": { - "input": { - "description": "Unit's input.", - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "description": "Input file name", - "type": "string" - }, - "content": { - "description": "Content of the input file. e.g. database='local' ...", - "type": "string" - } - }, - "required": [ - "name", - "content" - ] - } - } - }, - "required": [ - "input" - ] -} diff --git a/schema/job/model/method/workflow/ml_unit/ml_modelfit.json b/schema/job/model/method/workflow/ml_unit/ml_modelfit.json deleted file mode 100644 index 0e738bd59..000000000 --- a/schema/job/model/method/workflow/ml_unit/ml_modelfit.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "ML Modelfit unit schema", - "type": "object", - "properties": { - "input": { - "description": "Unit's input.", - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "description": "Input file name", - "type": "string" - }, - "inputData":{ - "description": "input data for model training. JSON formatted string of input data", - "type": "string" - }, - "content": { - "description": "Content of the input file. e.g. features = \n targets = ...", - "type": "string" - } - }, - "required": [ - "name", - "inputData", - "content" - ] - } - } - }, - "required": [ - "input" - ] -} diff --git a/schema/job/model/method/workflow/ml_unit/ml_predict.json b/schema/job/model/method/workflow/ml_unit/ml_predict.json deleted file mode 100644 index ded8bded6..000000000 --- a/schema/job/model/method/workflow/ml_unit/ml_predict.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "ML predict unit schema", - "type": "object", - "properties": { - "input": { - "description": "Unit's input.", - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "description": "Input file name", - "type": "string" - }, - "modelParameters":{ - "description": "Model parameters. ", - "ref":"../../../theory/ml/model_parameters/model_parameters.json" - }, - "content": { - "description": "Content of the input file. e.g. features = \n targets = ...", - "type": "string" - } - }, - "required": [ - "name", - "modelParameters", - "content" - ] - } - } - }, - "required": [ - "input" - ] -} From a4018d775c0632069793bbc891b5f3f9f6ab209e Mon Sep 17 00:00:00 2001 From: Phani Date: Sun, 5 Mar 2017 23:09:09 -0800 Subject: [PATCH 06/63] deleted old ML units example schema --- .../job/model/method/workflow/ml_unit/_result.json | 8 -------- .../model/method/workflow/ml_unit/ml_interface.json | 8 -------- .../model/method/workflow/ml_unit/ml_modelfit.json | 12 ------------ .../model/method/workflow/ml_unit/ml_predict.json | 12 ------------ example/job/theory/ml/prediction.json | 2 +- 5 files changed, 1 insertion(+), 41 deletions(-) delete mode 100644 example/job/model/method/workflow/ml_unit/_result.json delete mode 100644 example/job/model/method/workflow/ml_unit/ml_interface.json delete mode 100644 example/job/model/method/workflow/ml_unit/ml_modelfit.json delete mode 100644 example/job/model/method/workflow/ml_unit/ml_predict.json diff --git a/example/job/model/method/workflow/ml_unit/_result.json b/example/job/model/method/workflow/ml_unit/_result.json deleted file mode 100644 index 81d52bc1d..000000000 --- a/example/job/model/method/workflow/ml_unit/_result.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "results": [ - { - "name": "band_gaps", - "value": 0.43 - } - ] -} diff --git a/example/job/model/method/workflow/ml_unit/ml_interface.json b/example/job/model/method/workflow/ml_unit/ml_interface.json deleted file mode 100644 index 6d90b35aa..000000000 --- a/example/job/model/method/workflow/ml_unit/ml_interface.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "input": [ - { - "name": "interface.input", - "content": "database = 'local' \n materials_specific_parameters \n chemical_system = True, elements = ['Si', 'Ge'] \n target_properties = ['band_gaps'] \n owner_id = None \n ML_specific_parameters \n preprocessing = 'stratify', train_data_size = 0.8, features_to_include = 'Si Ge lattice_volume', dropnan = 'True', fill_nan_with_zeros = 'True'\n" - } - ] -} diff --git a/example/job/model/method/workflow/ml_unit/ml_modelfit.json b/example/job/model/method/workflow/ml_unit/ml_modelfit.json deleted file mode 100644 index 26125b5eb..000000000 --- a/example/job/model/method/workflow/ml_unit/ml_modelfit.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "input": [ - { - "name": "modelfit.input", - "content": "features = ['Si', 'Ge'] \n target_properties = ['band_gaps'] \n algorithm = 'linear_regression'\n model_specific_parameters = 'sample_weight'\n", - "inputData": { - "...": "include(../../../../theory/ml/model_parameters/input_data)" - } - - } - ] -} diff --git a/example/job/model/method/workflow/ml_unit/ml_predict.json b/example/job/model/method/workflow/ml_unit/ml_predict.json deleted file mode 100644 index f34085797..000000000 --- a/example/job/model/method/workflow/ml_unit/ml_predict.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "input": [ - { - "name": "predict.input", - "content": "feature_vector = ['Si', 'Ge'] \n target_properties = ['band_gaps']\n", - "modelParameters": { - "...": "include(../../../../theory/ml/model_parameters/model_parameters.json)" - } - - } - ] -} diff --git a/example/job/theory/ml/prediction.json b/example/job/theory/ml/prediction.json index 0bbfe1db4..ff716bb4e 100644 --- a/example/job/theory/ml/prediction.json +++ b/example/job/theory/ml/prediction.json @@ -5,6 +5,6 @@ "...": "include(prediction/precision.json)" }, "data":{ - "...": "include(model_parameters/input_data.json)" + "...": "include(model_parameters/input_data)" } } From 5a9d5cf58138260fd2f5067bdd67abf593b756e1 Mon Sep 17 00:00:00 2001 From: Phani Date: Mon, 6 Mar 2017 14:39:07 -0800 Subject: [PATCH 07/63] Fixed JSON formatting errors --- example/job/model/method/workflow/unit/interface.json | 2 +- .../{model_paramters.json => model_parameters.json} | 0 example/job/theory/ml/prediction.json | 2 +- schema/job/theory/ml/model_parameters/model_parameters.json | 4 ++-- 4 files changed, 4 insertions(+), 4 deletions(-) rename example/job/theory/ml/model_parameters/{model_paramters.json => model_parameters.json} (100%) diff --git a/example/job/model/method/workflow/unit/interface.json b/example/job/model/method/workflow/unit/interface.json index 534075c27..8781638b7 100644 --- a/example/job/model/method/workflow/unit/interface.json +++ b/example/job/model/method/workflow/unit/interface.json @@ -6,7 +6,7 @@ "Si", "Ge" ], - "superset": "false", + "superset": false, "databases": [ "ExabyteDB" ], diff --git a/example/job/theory/ml/model_parameters/model_paramters.json b/example/job/theory/ml/model_parameters/model_parameters.json similarity index 100% rename from example/job/theory/ml/model_parameters/model_paramters.json rename to example/job/theory/ml/model_parameters/model_parameters.json diff --git a/example/job/theory/ml/prediction.json b/example/job/theory/ml/prediction.json index ff716bb4e..d5118454a 100644 --- a/example/job/theory/ml/prediction.json +++ b/example/job/theory/ml/prediction.json @@ -5,6 +5,6 @@ "...": "include(prediction/precision.json)" }, "data":{ - "...": "include(model_parameters/input_data)" + "...": "include(model_parameters/model_parameters.json)" } } diff --git a/schema/job/theory/ml/model_parameters/model_parameters.json b/schema/job/theory/ml/model_parameters/model_parameters.json index f87af3885..c79429ed8 100644 --- a/schema/job/theory/ml/model_parameters/model_parameters.json +++ b/schema/job/theory/ml/model_parameters/model_parameters.json @@ -31,8 +31,8 @@ "description": "metric for accuracy of the model" }, "modelData": { - "type": "string", - "description": "JSON formatted string of input data used for model fitting" + "type": "object", + "description": "JSON object of input data used for model fitting" } } } From 1d2f91a297a941f3d2035ffd6ce6884842a39dac Mon Sep 17 00:00:00 2001 From: Phani Date: Mon, 6 Mar 2017 15:10:35 -0800 Subject: [PATCH 08/63] modified model data --- example/job/theory/ml/model_parameters/input_data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/job/theory/ml/model_parameters/input_data b/example/job/theory/ml/model_parameters/input_data index 37c451c98..b230bb63e 100644 --- a/example/job/theory/ml/model_parameters/input_data +++ b/example/job/theory/ml/model_parameters/input_data @@ -1 +1 @@ -"{\"Si\":{\"c8zG3XcnnTybfP3QQ\":0.6875,\"wWK2XCyivQrG8j34Z\":0.8125},\"Ge\":{\"c8zG3XcnnTybfP3QQ\":0.3125,\"wWK2XCyivQrG8j34Z\":0.1875},\"lattice_volume\":{\"c8zG3XcnnTybfP3QQ\":327.1127749111,\"wWK2XCyivQrG8j34Z\":327.1127749111}}" \ No newline at end of file +"{\"Si\":{\"c8zG3XcnnTybfP3QQ\":0.6875,\"wWK2XCyivQrG8j34Z\":0.8125},\"Ge\":{\"c8zG3XcnnTybfP3QQ\":0.3125,\"wWK2XCyivQrG8j34Z\":0.1875},\"lattice_volume\":{\"c8zG3XcnnTybfP3QQ\":327.1127749111,\"wWK2XCyivQrG8j34Z\":327.1127749111}}" From 7459af6ca60d2abc974c173e84aa589d6aae22ba Mon Sep 17 00:00:00 2001 From: Phani Date: Tue, 7 Mar 2017 15:41:18 -0800 Subject: [PATCH 09/63] Reorganized ML model and method schema --- example/job/ml_model.json | 11 ----- example/job/model/method/ml_workflow.json | 14 ------ example/job/model/method/workflow/ml_fit.json | 11 ----- .../model/method/workflow/ml_interface.json | 9 ---- .../job/model/method/workflow/ml_predict.json | 9 ---- .../job/model/method/workflow/unit/fit.json | 14 ------ .../model/method/workflow/unit/interface.json | 27 ----------- .../model/method/workflow/unit/predict.json | 10 ---- example/job/model/ml_method.json | 7 --- .../{model_parameters => linear}/input_data | 0 example/job/theory/ml/linear/parameters.json | 12 +++++ example/job/theory/ml/linear/precision.json | 4 ++ .../ml/model_parameters/model_parameters.json | 18 -------- example/job/theory/ml/prediction.json | 10 ---- .../job/theory/ml/prediction/precision.json | 3 -- schema/job/model/method.json | 10 +--- schema/job/model/method/workflow/unit.json | 4 -- schema/job/theory/dft/_methods.json | 12 +++++ schema/job/theory/ml.json | 2 +- schema/job/theory/ml/_methods.json | 9 ++++ schema/job/theory/ml/classification.json | 29 ------------ .../theory/ml/classification/precision.json | 17 ------- schema/job/theory/ml/linear.json | 17 +++++++ schema/job/theory/ml/linear/inputData.json | 5 ++ schema/job/theory/ml/linear/parameters.json | 26 +++++++++++ schema/job/theory/ml/linear/precision.json | 18 ++++++++ .../ml/model_parameters/model_parameters.json | 46 ------------------- schema/job/theory/ml/prediction.json | 28 ----------- .../job/theory/ml/prediction/precision.json | 21 --------- 29 files changed, 106 insertions(+), 297 deletions(-) delete mode 100644 example/job/ml_model.json delete mode 100644 example/job/model/method/ml_workflow.json delete mode 100644 example/job/model/method/workflow/ml_fit.json delete mode 100644 example/job/model/method/workflow/ml_interface.json delete mode 100644 example/job/model/method/workflow/ml_predict.json delete mode 100644 example/job/model/method/workflow/unit/fit.json delete mode 100644 example/job/model/method/workflow/unit/interface.json delete mode 100644 example/job/model/method/workflow/unit/predict.json delete mode 100644 example/job/model/ml_method.json rename example/job/theory/ml/{model_parameters => linear}/input_data (100%) create mode 100644 example/job/theory/ml/linear/parameters.json create mode 100644 example/job/theory/ml/linear/precision.json delete mode 100644 example/job/theory/ml/model_parameters/model_parameters.json delete mode 100644 example/job/theory/ml/prediction.json delete mode 100644 example/job/theory/ml/prediction/precision.json create mode 100644 schema/job/theory/dft/_methods.json create mode 100644 schema/job/theory/ml/_methods.json delete mode 100644 schema/job/theory/ml/classification.json delete mode 100644 schema/job/theory/ml/classification/precision.json create mode 100644 schema/job/theory/ml/linear.json create mode 100644 schema/job/theory/ml/linear/inputData.json create mode 100644 schema/job/theory/ml/linear/parameters.json create mode 100644 schema/job/theory/ml/linear/precision.json delete mode 100644 schema/job/theory/ml/model_parameters/model_parameters.json delete mode 100644 schema/job/theory/ml/prediction.json delete mode 100644 schema/job/theory/ml/prediction/precision.json diff --git a/example/job/ml_model.json b/example/job/ml_model.json deleted file mode 100644 index 2f46ae450..000000000 --- a/example/job/ml_model.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "model", - "type": "ml", - "subtype": "supervised", - "references": [ - "http://scikit-learn.org/stable/tutorial/machine_learning_map/index.html" - ], - "method": { - "...": "include(model/ml_method.json)" - } -} diff --git a/example/job/model/method/ml_workflow.json b/example/job/model/method/ml_workflow.json deleted file mode 100644 index 93dc742c6..000000000 --- a/example/job/model/method/ml_workflow.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "units": [ - { - "...": "include(workflow/ml_interface.json)" - }, - { - "...": "include(workflow/ml_fit.json)" - }, - { - "...": "include(workflow/ml_predict.json)" - } - ], - "name": "property-prediction" -} diff --git a/example/job/model/method/workflow/ml_fit.json b/example/job/model/method/workflow/ml_fit.json deleted file mode 100644 index bb5766d90..000000000 --- a/example/job/model/method/workflow/ml_fit.json +++ /dev/null @@ -1,11 +0,0 @@ - -{ - "head": false, - "flowchartId": "2", - "name": "ModelFit", - "type": "fit", - "fit": { - "...": "include(unit/fit.json)" - } - -} diff --git a/example/job/model/method/workflow/ml_interface.json b/example/job/model/method/workflow/ml_interface.json deleted file mode 100644 index 8ad780176..000000000 --- a/example/job/model/method/workflow/ml_interface.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "head": true, - "flowchartId": "1", - "name": "MLInterface", - "type": "interface", - "interface": { - "...": "include(unit/interface.json)" - } -} diff --git a/example/job/model/method/workflow/ml_predict.json b/example/job/model/method/workflow/ml_predict.json deleted file mode 100644 index 152444918..000000000 --- a/example/job/model/method/workflow/ml_predict.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "head": false, - "flowchartId": "3", - "name": "Predict", - "type": "predict", - "predict": { - "...": "include(unit/predict.json)" - } -} diff --git a/example/job/model/method/workflow/unit/fit.json b/example/job/model/method/workflow/unit/fit.json deleted file mode 100644 index 7d15b7e92..000000000 --- a/example/job/model/method/workflow/unit/fit.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "compute": null, - "input": [ - { - "algorithm": "linear_regression", - "fitParameters": [ - "sample_weight" - ], - "targetProperties":[ - "band_gaps" - ] - } - ] -} diff --git a/example/job/model/method/workflow/unit/interface.json b/example/job/model/method/workflow/unit/interface.json deleted file mode 100644 index 8781638b7..000000000 --- a/example/job/model/method/workflow/unit/interface.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "compute": null, - "input": [ - { - "chemicalSystem": [ - "Si", - "Ge" - ], - "superset": false, - "databases": [ - "ExabyteDB" - ], - "targetMaterials":[ - "Si5Ge11" - ], - "features":[ - "Si", - "Ge", - "density" - ], - "targetProperties":[ - "band_gaps" - ], - "owner" : "paxJukXpDBiSRjfRZ" - } - ] -} diff --git a/example/job/model/method/workflow/unit/predict.json b/example/job/model/method/workflow/unit/predict.json deleted file mode 100644 index 1a01ef961..000000000 --- a/example/job/model/method/workflow/unit/predict.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "compute": null, - "input": [ - { - "targetProperties":[ - "band_gaps" - ] - } - ] -} diff --git a/example/job/model/ml_method.json b/example/job/model/ml_method.json deleted file mode 100644 index a79eb93d7..000000000 --- a/example/job/model/ml_method.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "type": "prediction", - "subtype": "linear_regression", - "workflow": { - "...": "include(method/ml_workflow.json)" - } -} diff --git a/example/job/theory/ml/model_parameters/input_data b/example/job/theory/ml/linear/input_data similarity index 100% rename from example/job/theory/ml/model_parameters/input_data rename to example/job/theory/ml/linear/input_data diff --git a/example/job/theory/ml/linear/parameters.json b/example/job/theory/ml/linear/parameters.json new file mode 100644 index 000000000..e3d32fd0a --- /dev/null +++ b/example/job/theory/ml/linear/parameters.json @@ -0,0 +1,12 @@ +{ + "property": "band_gaps", + "coefficients":[ + -3.339e-01, + 2.555e-01, + -1.005e-02 + ], + "intercept": 0.45, + "modelData" : { + "...": "(include(input_data)" + } +} diff --git a/example/job/theory/ml/linear/precision.json b/example/job/theory/ml/linear/precision.json new file mode 100644 index 000000000..50bcb32f2 --- /dev/null +++ b/example/job/theory/ml/linear/precision.json @@ -0,0 +1,4 @@ +{ + "trainingError": 0.1, + "cvError": 0.3 +} diff --git a/example/job/theory/ml/model_parameters/model_parameters.json b/example/job/theory/ml/model_parameters/model_parameters.json deleted file mode 100644 index 872e9eb25..000000000 --- a/example/job/theory/ml/model_parameters/model_parameters.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "algorithm": "linear_regression", - "task": "property_prediction", - "property": "band_gaps", - "modelParameters":{ - "modelCoefficients":[ - -3.339e-01, - 2.555e-01, - -1.005e-02 - ], - "intercept": 0.45, - "score": 0.8, - "modelData" : { - "...": "(include(input_data)" - } - - } -} diff --git a/example/job/theory/ml/prediction.json b/example/job/theory/ml/prediction.json deleted file mode 100644 index d5118454a..000000000 --- a/example/job/theory/ml/prediction.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "prediction", - "subtype":"linear_regression", - "precision":{ - "...": "include(prediction/precision.json)" - }, - "data":{ - "...": "include(model_parameters/model_parameters.json)" - } -} diff --git a/example/job/theory/ml/prediction/precision.json b/example/job/theory/ml/prediction/precision.json deleted file mode 100644 index 259c45447..000000000 --- a/example/job/theory/ml/prediction/precision.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "score": 0.8 -} diff --git a/schema/job/model/method.json b/schema/job/model/method.json index 74c134ee3..6dd2ddcda 100644 --- a/schema/job/model/method.json +++ b/schema/job/model/method.json @@ -24,16 +24,10 @@ }, "oneOf": [ { - "$ref": "file:../theory/dft/pseudopotential.json" + "$ref": "file:../theory/dft/_methods.json" }, { - "$ref": "file:../theory/dft/local-orbital.json" - }, - { - "$ref": "file:../theory/ml/prediction.json" - }, - { - "$ref": "file:../theory/ml/classification.json" + "$ref": "file:../theory/ml/_methods.json" } ], "required": [ diff --git a/schema/job/model/method/workflow/unit.json b/schema/job/model/method/workflow/unit.json index ef2261909..9f3231cdb 100644 --- a/schema/job/model/method/workflow/unit.json +++ b/schema/job/model/method/workflow/unit.json @@ -72,10 +72,6 @@ "$ref": "file:unit/_result.json" } }, - "modelParameters":{ - "description": "parameters from Machine Learning model fitting", - "$ref": "file:../../../theory/ml/model_parameters/model_parameters.json" - }, "execution": { "description": "Contains information about the execution unit..", "$ref": "file:unit/execution.json" diff --git a/schema/job/theory/dft/_methods.json b/schema/job/theory/dft/_methods.json new file mode 100644 index 000000000..357181208 --- /dev/null +++ b/schema/job/theory/dft/_methods.json @@ -0,0 +1,12 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "List of methods", + "oneOf": [ + { + "$ref": "file:local-orbital.json" + }, + { + "$ref": "file:pseudopotential.json" + } + ] +} diff --git a/schema/job/theory/ml.json b/schema/job/theory/ml.json index 86ea4625a..b7fcd319a 100644 --- a/schema/job/theory/ml.json +++ b/schema/job/theory/ml.json @@ -5,7 +5,7 @@ "properties": { "type": { "enum": [ - "ml" + "machine_learning" ] }, "subtype": { diff --git a/schema/job/theory/ml/_methods.json b/schema/job/theory/ml/_methods.json new file mode 100644 index 000000000..c062f8cc2 --- /dev/null +++ b/schema/job/theory/ml/_methods.json @@ -0,0 +1,9 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "List of methods", + "oneOf": [ + { + "$ref": "file:linear.json" + } + ] +} diff --git a/schema/job/theory/ml/classification.json b/schema/job/theory/ml/classification.json deleted file mode 100644 index 5b299b75b..000000000 --- a/schema/job/theory/ml/classification.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "classification method schema", - "properties": { - "type": { - "enum": [ - "classification" - ] - }, - "subtype": { - "enum": [ - "logistic_regression", - "neural_network", - "decision_tree" - ] - }, - "precision": { - "$ref": "file:classification/precision.json" - }, - "data":{ - "$ref":"file:model_parameters/model_parameters.json" - } - }, - "required": [ - "type", - "subtype", - "precision" - ] -} diff --git a/schema/job/theory/ml/classification/precision.json b/schema/job/theory/ml/classification/precision.json deleted file mode 100644 index eec6b425e..000000000 --- a/schema/job/theory/ml/classification/precision.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "precision schema for classification", - "properties": { - "score": { - "description": "default: mean accuracy on the given test data and labels", - "type": "number" - }, - "cvScore": { - "description": "Cross validation score", - "type": "number" - } - }, - "required": [ - "score" - ] -} diff --git a/schema/job/theory/ml/linear.json b/schema/job/theory/ml/linear.json new file mode 100644 index 000000000..05c22a0d0 --- /dev/null +++ b/schema/job/theory/ml/linear.json @@ -0,0 +1,17 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "linear methods schema", + "properties": { + "type": { + "enum": [ + "least_squares" + ] + }, + "precision": { + "$ref": "file:linear/precision.json" + }, + "data":{ + "$ref":"file:linear/parameters.json" + } + } +} diff --git a/schema/job/theory/ml/linear/inputData.json b/schema/job/theory/ml/linear/inputData.json new file mode 100644 index 000000000..a5a7bb9b8 --- /dev/null +++ b/schema/job/theory/ml/linear/inputData.json @@ -0,0 +1,5 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "input data schema", + "type": "object" +} diff --git a/schema/job/theory/ml/linear/parameters.json b/schema/job/theory/ml/linear/parameters.json new file mode 100644 index 000000000..db240e23f --- /dev/null +++ b/schema/job/theory/ml/linear/parameters.json @@ -0,0 +1,26 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "regression parameters schema", + "properties": { + "property": { + "type": "string", + "description": "name of the predicted or optimized characteristic" + }, + "coefficients": { + "type": "array", + "description": "weights/coefficients of the function from linear or non-linear fit" + }, + "intercept": { + "type": "number", + "description": "intercept (shift) from the linear fit of data points" + }, + "inputData": { + "$ref":"file:inputData.json" + } + }, + "required": [ + "property", + "coefficients", + "intercept" + ] +} diff --git a/schema/job/theory/ml/linear/precision.json b/schema/job/theory/ml/linear/precision.json new file mode 100644 index 000000000..5a448fb2a --- /dev/null +++ b/schema/job/theory/ml/linear/precision.json @@ -0,0 +1,18 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "precision schema for regression", + "properties": { + "trainingError": { + "description": "training error of the estimator", + "type": "number" + }, + "cvError": { + "description": "cross validation error of the estimator", + "type": "number" + } + }, + "required": [ + "trainingError", + "cvError" + ] +} diff --git a/schema/job/theory/ml/model_parameters/model_parameters.json b/schema/job/theory/ml/model_parameters/model_parameters.json deleted file mode 100644 index c79429ed8..000000000 --- a/schema/job/theory/ml/model_parameters/model_parameters.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "ML model data schema", - "properties": { - "algorithm": { - "type": "string", - "description": "name of the ML algorithm. Example: linear_regression" - }, - "task": { - "type": "string", - "description": "description of ML task. Example: property prediction" - }, - "property": { - "type": "string", - "description": "name of the predicted or optimized characteristic" - }, - "modelParameters": { - "type": "object", - "description": "parameters of the fitted model. Example: regression model coefficients, score, intercept and data", - "properties": { - "modelCoefficients": { - "type": "array", - "description": "weights/coefficients of the function from linear or non-linear fit" - }, - "intercept": { - "type": "number", - "description": "intercept from the linear fit of data points" - }, - "score":{ - "type": "number", - "description": "metric for accuracy of the model" - }, - "modelData": { - "type": "object", - "description": "JSON object of input data used for model fitting" - } - } - } - }, - "required": [ - "algorithm", - "task", - "property", - "modelParameters" - ] -} diff --git a/schema/job/theory/ml/prediction.json b/schema/job/theory/ml/prediction.json deleted file mode 100644 index d30a64387..000000000 --- a/schema/job/theory/ml/prediction.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "prediction method schema", - "properties": { - "type": { - "enum": [ - "prediction" - ] - }, - "subtype": { - "enum": [ - "linear_regression", - "ridge_regression" - ] - }, - "precision": { - "$ref": "file:prediction/precision.json" - }, - "data":{ - "$ref":"file:model_parameters/model_parameters.json" - } - }, - "required": [ - "type", - "subtype", - "precision" - ] -} diff --git a/schema/job/theory/ml/prediction/precision.json b/schema/job/theory/ml/prediction/precision.json deleted file mode 100644 index 4f7586843..000000000 --- a/schema/job/theory/ml/prediction/precision.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "precision schema for regression", - "properties": { - "score": { - "description": "default: variance score of the estimator", - "type": "number" - }, - "cvScore": { - "description": "Cross validation score ", - "type": "number" - }, - "meanSquaredError":{ - "description": "Mean squared error in regression", - "type": "number" - } - }, - "required": [ - "score" - ] -} From 755b121b9ce156562dbd73b9e754b40881bcdaa3 Mon Sep 17 00:00:00 2001 From: Phani Date: Tue, 7 Mar 2017 15:52:21 -0800 Subject: [PATCH 10/63] ML units cleanup --- schema/job/model/method/workflow/unit.json | 22 +------ .../job/model/method/workflow/unit/fit.json | 35 ------------ .../model/method/workflow/unit/interface.json | 57 ------------------- .../model/method/workflow/unit/predict.json | 26 --------- .../model/method/workflow/unit/transform.json | 31 ---------- schema/job/theory/ml/linear/inputData.json | 1 + 6 files changed, 2 insertions(+), 170 deletions(-) delete mode 100644 schema/job/model/method/workflow/unit/fit.json delete mode 100644 schema/job/model/method/workflow/unit/interface.json delete mode 100644 schema/job/model/method/workflow/unit/predict.json delete mode 100644 schema/job/model/method/workflow/unit/transform.json diff --git a/schema/job/model/method/workflow/unit.json b/schema/job/model/method/workflow/unit.json index 9f3231cdb..42f76d8a8 100644 --- a/schema/job/model/method/workflow/unit.json +++ b/schema/job/model/method/workflow/unit.json @@ -12,11 +12,7 @@ "reduce", "assignment", "condition", - "exit", - "interface", - "fit", - "predict", - "transform" + "exit" ] }, "name": { @@ -87,22 +83,6 @@ "map": { "description": "Contains information about the map unit.", "$ref": "file:unit/map.json" - }, - "interface": { - "description": "Contains information about the Machine Learning interface unit.", - "$ref": "file:unit/interface.json" - }, - "fit": { - "description": "Contains information about the Machine Learning model fit unit.", - "$ref": "file:unit/fit.json" - }, - "predict": { - "description": "Contains information about the Machine Learning property predict unit.", - "$ref": "file:unit/predict.json" - }, - "transform": { - "description": "Contains information about the Machine Learning data transform unit.", - "$ref": "file:unit/transform.json" } }, "required": [ diff --git a/schema/job/model/method/workflow/unit/fit.json b/schema/job/model/method/workflow/unit/fit.json deleted file mode 100644 index 9d4872157..000000000 --- a/schema/job/model/method/workflow/unit/fit.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "ML Fit unit schema", - "type": "object", - "properties": { - "input": { - "description": "Unit's input.", - "type": "array", - "items": { - "type": "object", - "properties": { - "algorithm": { - "description": "Algorithm name", - "type": "string" - }, - "fitParameters": { - "description": "Additional paramaters used for model fitting", - "type": "array" - }, - "targetProperties": { - "description": "Target properties to predict", - "type": "array" - } - }, - "required": [ - "algorithm", - "targetProperties" - ] - } - } - }, - "required": [ - "input" - ] -} diff --git a/schema/job/model/method/workflow/unit/interface.json b/schema/job/model/method/workflow/unit/interface.json deleted file mode 100644 index a10b8aab9..000000000 --- a/schema/job/model/method/workflow/unit/interface.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "ML Interface unit schema", - "type": "object", - "properties": { - "input": { - "description": "Unit's input.", - "type": "array", - "items": { - "type": "object", - "properties": { - "trainingMaterials": { - "description": "List of training materials. Eg: ['Si3Ge5', 'SiGe']", - "type": "array" - }, - "chemicalSystem": { - "description": "List of elements in chemical system. Eg: ['Si', 'Ge']", - "type": "array" - }, - "superset": { - "description": "Input to define the list of materials formed by the elements in chemical system", - "type": "boolean" - }, - "databases": { - "description": "List of databases to get data from", - "type": "array" - }, - "features": { - "description": "List of features to use in training. Example: descriptive properties", - "type": "array" - }, - "targetMaterials": { - "description": "List of target materials. Eg: ['Si3Ge5', 'SiGe']", - "type": "array" - }, - "targetProperties": { - "description": "List of target properties", - "type": "array" - }, - "owner":{ - "description": "Exabyte ID of the material owner", - "type": "string" - } - }, - "required": [ - "chemicalSystem", - "databases", - "targetMaterials", - "targetProperties" - ] - } - } - }, - "required": [ - "input" - ] -} diff --git a/schema/job/model/method/workflow/unit/predict.json b/schema/job/model/method/workflow/unit/predict.json deleted file mode 100644 index 763dd5d90..000000000 --- a/schema/job/model/method/workflow/unit/predict.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "ML Predict unit schema", - "type": "object", - "properties": { - "input": { - "description": "Unit's input.", - "type": "array", - "items": { - "type": "object", - "properties": { - "targetProperties": { - "description": "Target properties to predict", - "type": "array" - } - }, - "required": [ - "targetProperties" - ] - } - } - }, - "required": [ - "input" - ] -} diff --git a/schema/job/model/method/workflow/unit/transform.json b/schema/job/model/method/workflow/unit/transform.json deleted file mode 100644 index ee3c1a3d1..000000000 --- a/schema/job/model/method/workflow/unit/transform.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "ML Transform unit schema", - "type": "object", - "properties": { - "input": { - "description": "Unit's input.", - "type": "array", - "items": { - "type": "object", - "properties": { - "algorithm": { - "description": "Algorithm name", - "type": "string" - }, - "fitParameters": { - "description": "Additional paramaters used for model fitting", - "type": "array" - } - }, - "required": [ - "algorithm", - "fitParameters" - ] - } - } - }, - "required": [ - "input" - ] -} diff --git a/schema/job/theory/ml/linear/inputData.json b/schema/job/theory/ml/linear/inputData.json index a5a7bb9b8..6b6c7c1f5 100644 --- a/schema/job/theory/ml/linear/inputData.json +++ b/schema/job/theory/ml/linear/inputData.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-04/schema#", + "descritpion": "Input data used for ML method", "title": "input data schema", "type": "object" } From 57d3a98b25eed1837b20b281dd9b8b18ed9bf107 Mon Sep 17 00:00:00 2001 From: Phani Date: Tue, 7 Mar 2017 18:31:40 -0800 Subject: [PATCH 11/63] Adjusted JSON schema for ML units --- schema/job/app.json | 4 ++- schema/job/input.json | 10 ++++++ .../model/method/workflow/unit/execution.json | 27 +++++---------- .../method/workflow/unit/execution/input.json | 22 +++++++++++++ schema/job/software/ml.json | 27 +++++++++++++++ schema/job/theory/ml/input.json | 33 +++++++++++++++++++ 6 files changed, 104 insertions(+), 19 deletions(-) create mode 100644 schema/job/input.json create mode 100644 schema/job/model/method/workflow/unit/execution/input.json create mode 100644 schema/job/software/ml.json create mode 100644 schema/job/theory/ml/input.json diff --git a/schema/job/app.json b/schema/job/app.json index 6dc7c718b..0cb8795fa 100644 --- a/schema/job/app.json +++ b/schema/job/app.json @@ -30,11 +30,13 @@ }, { "$ref": "file:software/vasp.json" + }, + { + "$ref": "file:software/ml.json" } ], "required": [ "name", - "flavor", "version", "exec" ] diff --git a/schema/job/input.json b/schema/job/input.json new file mode 100644 index 000000000..361d451ec --- /dev/null +++ b/schema/job/input.json @@ -0,0 +1,10 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "application schema", + "type": "object", + "oneOf": [ + { + "$ref": "file:theory/ml/input.json" + } + ] +} diff --git a/schema/job/model/method/workflow/unit/execution.json b/schema/job/model/method/workflow/unit/execution.json index bc1819fa5..b8194d0be 100644 --- a/schema/job/model/method/workflow/unit/execution.json +++ b/schema/job/model/method/workflow/unit/execution.json @@ -12,25 +12,16 @@ "$ref": "file:../../../../compute.json" }, "input": { - "description": "Unit's input.", - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "description": "Input file name. e.g. pw_scf.in", - "type": "string" - }, - "content": { - "description": "Content of the input file. e.g. &CONTROL calculation='scf' ...", - "type": "string" - } + "oneOf": [ + { + "description": "textual input (eg. for simulation engines)", + "$ref": "file:execution/input.json" }, - "required": [ - "name", - "content" - ] - } + { + "description": "object input (eg. for machine learning)", + "$ref": "file:../../../../input.json" + } + ] } }, "required": [ diff --git a/schema/job/model/method/workflow/unit/execution/input.json b/schema/job/model/method/workflow/unit/execution/input.json new file mode 100644 index 000000000..957a93829 --- /dev/null +++ b/schema/job/model/method/workflow/unit/execution/input.json @@ -0,0 +1,22 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Execution unit text input schema", + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "Input file name. e.g. pw_scf.in", + "type": "string" + }, + "content": { + "description": "Content of the input file. e.g. &CONTROL calculation='scf' ...", + "type": "string" + } + }, + "required": [ + "name", + "content" + ] + } +} diff --git a/schema/job/software/ml.json b/schema/job/software/ml.json new file mode 100644 index 000000000..2429ab9e3 --- /dev/null +++ b/schema/job/software/ml.json @@ -0,0 +1,27 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "default machine learning app schema", + "type": "object", + "properties": { + "name": { + "enum": [ + "ml" + ] + }, + "summary": { + "enum": [ + "Default Machine Learning Engine" + ] + }, + "version": { + "enum": [ + "0.1.1" + ] + }, + "exec": { + "enum": [ + "rupy" + ] + } + } +} diff --git a/schema/job/theory/ml/input.json b/schema/job/theory/ml/input.json new file mode 100644 index 000000000..9b2bfa5b3 --- /dev/null +++ b/schema/job/theory/ml/input.json @@ -0,0 +1,33 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Execution unit input schema for machine learning", + "type": "object", + "properties": { + "method": { + "description": "method information", + "type": "object", + "properties": { + "type": { + "description": "method type", + "type": "string" + }, + "subtype": { + "description": "method subtype", + "type": "string" + } + } + }, + "fitParameters": { + "description": "additional parameters used for model fitting", + "type": "array" + }, + "targetProperties": { + "description": "target properties to predict", + "type": "array" + } + }, + "required": [ + "algorithm", + "targetProperties" + ] +} From 089cb4ab10516f7b4665cc8eaac19dba6eac48c8 Mon Sep 17 00:00:00 2001 From: Phani Date: Tue, 7 Mar 2017 21:53:23 -0800 Subject: [PATCH 12/63] Added examples for ML input --- example/job/input.json | 3 +++ .../model/method/workflow/unit/execution.json | 3 +-- .../method/workflow/unit/execution/input.json | 4 ++++ example/job/theory/ml/input.json | 12 ++++++++++ .../model/method/workflow/unit/execution.json | 24 +++++++++++-------- .../method/workflow/unit/execution/input.json | 19 +++++++-------- schema/job/theory/ml/input.json | 9 ++++--- 7 files changed, 48 insertions(+), 26 deletions(-) create mode 100644 example/job/input.json create mode 100644 example/job/model/method/workflow/unit/execution/input.json create mode 100644 example/job/theory/ml/input.json diff --git a/example/job/input.json b/example/job/input.json new file mode 100644 index 000000000..c7402411c --- /dev/null +++ b/example/job/input.json @@ -0,0 +1,3 @@ +{ + "...": "include(theory/ml/input.json)" +} diff --git a/example/job/model/method/workflow/unit/execution.json b/example/job/model/method/workflow/unit/execution.json index f544df873..a0a008619 100644 --- a/example/job/model/method/workflow/unit/execution.json +++ b/example/job/model/method/workflow/unit/execution.json @@ -5,8 +5,7 @@ "compute": null, "input": [ { - "content": "K_POINTS automatic\n2 2 2 0 0 0", - "name": "pw_scf.in" + "...": "include(execution/input.json)" } ] } diff --git a/example/job/model/method/workflow/unit/execution/input.json b/example/job/model/method/workflow/unit/execution/input.json new file mode 100644 index 000000000..af6b3904f --- /dev/null +++ b/example/job/model/method/workflow/unit/execution/input.json @@ -0,0 +1,4 @@ +{ + "content": "K_POINTS automatic\n2 2 2 0 0 0", + "name": "pw_scf.in" +} diff --git a/example/job/theory/ml/input.json b/example/job/theory/ml/input.json new file mode 100644 index 000000000..f4de8eb76 --- /dev/null +++ b/example/job/theory/ml/input.json @@ -0,0 +1,12 @@ +{ + "method":{ + "type": "linear", + "subtype": "least_squares" + }, + "fitParameters": [ + "sample_weight" + ], + "targetProperties":[ + "band_gaps" + ] +} diff --git a/schema/job/model/method/workflow/unit/execution.json b/schema/job/model/method/workflow/unit/execution.json index b8194d0be..df4cdd658 100644 --- a/schema/job/model/method/workflow/unit/execution.json +++ b/schema/job/model/method/workflow/unit/execution.json @@ -12,16 +12,20 @@ "$ref": "file:../../../../compute.json" }, "input": { - "oneOf": [ - { - "description": "textual input (eg. for simulation engines)", - "$ref": "file:execution/input.json" - }, - { - "description": "object input (eg. for machine learning)", - "$ref": "file:../../../../input.json" - } - ] + "description": "Unit's input.", + "type": "array", + "items": { + "oneOf": [ + { + "description": "textual input (eg. for simulation engines)", + "$ref": "file:execution/input.json" + }, + { + "description": "object input (eg. for machine learning)", + "$ref": "file:../../../../input.json" + } + ] + } } }, "required": [ diff --git a/schema/job/model/method/workflow/unit/execution/input.json b/schema/job/model/method/workflow/unit/execution/input.json index 957a93829..21afc4eb6 100644 --- a/schema/job/model/method/workflow/unit/execution/input.json +++ b/schema/job/model/method/workflow/unit/execution/input.json @@ -1,10 +1,8 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Execution unit text input schema", - "type": "array", - "items": { - "type": "object", - "properties": { + "title": "execution unit text input schema", + "type": "object", + "properties": { "name": { "description": "Input file name. e.g. pw_scf.in", "type": "string" @@ -13,10 +11,9 @@ "description": "Content of the input file. e.g. &CONTROL calculation='scf' ...", "type": "string" } - }, - "required": [ - "name", - "content" - ] - } + }, + "required": [ + "name", + "content" + ] } diff --git a/schema/job/theory/ml/input.json b/schema/job/theory/ml/input.json index 9b2bfa5b3..4d73fd9a5 100644 --- a/schema/job/theory/ml/input.json +++ b/schema/job/theory/ml/input.json @@ -15,10 +15,14 @@ "description": "method subtype", "type": "string" } - } + }, + "required": [ + "type", + "subtype" + ] }, "fitParameters": { - "description": "additional parameters used for model fitting", + "description": "additional parameters used for model fitting using method subtype", "type": "array" }, "targetProperties": { @@ -27,7 +31,6 @@ } }, "required": [ - "algorithm", "targetProperties" ] } From e48c227309d8da188fb7f8e27756eac28e79ec1e Mon Sep 17 00:00:00 2001 From: Phani Date: Wed, 8 Mar 2017 08:54:57 -0800 Subject: [PATCH 13/63] fixed parameters input data --- example/job/theory/ml/linear/input_data | 13 ++++++++++++- example/job/theory/ml/linear/parameters.json | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/example/job/theory/ml/linear/input_data b/example/job/theory/ml/linear/input_data index b230bb63e..338ea1019 100644 --- a/example/job/theory/ml/linear/input_data +++ b/example/job/theory/ml/linear/input_data @@ -1 +1,12 @@ -"{\"Si\":{\"c8zG3XcnnTybfP3QQ\":0.6875,\"wWK2XCyivQrG8j34Z\":0.8125},\"Ge\":{\"c8zG3XcnnTybfP3QQ\":0.3125,\"wWK2XCyivQrG8j34Z\":0.1875},\"lattice_volume\":{\"c8zG3XcnnTybfP3QQ\":327.1127749111,\"wWK2XCyivQrG8j34Z\":327.1127749111}}" +{ + "c8zG3XcnnTybfP3QQ": { + "Ge": 0.3125, + "Si": 0.6875, + "lattice_volume": 327.1127749111 + }, + "wWK2XCyivQrG8j34Z": { + "Ge": 0.1875, + "Si": 0.8125, + "lattice_volume": 327.1127749111 + } +} diff --git a/example/job/theory/ml/linear/parameters.json b/example/job/theory/ml/linear/parameters.json index e3d32fd0a..d6097012a 100644 --- a/example/job/theory/ml/linear/parameters.json +++ b/example/job/theory/ml/linear/parameters.json @@ -7,6 +7,6 @@ ], "intercept": 0.45, "modelData" : { - "...": "(include(input_data)" + "...": "include(input_data)" } } From ceae426312a1b2d9f7fdd85c94872f3de606a70c Mon Sep 17 00:00:00 2001 From: Phani Date: Wed, 8 Mar 2017 14:00:03 -0800 Subject: [PATCH 14/63] feature/SOF-2046 added bandgap_prediction_workflow json --- .../workflow/bandgap_prediction_workflow.json | 186 ++++++++++++++++++ schema/job/input.json | 5 + schema/job/model/method/workflow/unit.json | 9 +- 3 files changed, 199 insertions(+), 1 deletion(-) create mode 100644 example/job/software/ml/workflow/bandgap_prediction_workflow.json diff --git a/example/job/software/ml/workflow/bandgap_prediction_workflow.json b/example/job/software/ml/workflow/bandgap_prediction_workflow.json new file mode 100644 index 000000000..cacd85bf2 --- /dev/null +++ b/example/job/software/ml/workflow/bandgap_prediction_workflow.json @@ -0,0 +1,186 @@ +{ + "_id": "ML bandgap prediction", + "title": "SiGe alloy bandgap prediction", + "titleSlug": "Template for ML POC SiGe alloy bandgap prediction", + "compute": { + "ppn": 1, + "queue": "OR", + "timeLimit": "1:00:00", + "notify": "n", + "nodes": 1, + "arguments": {} + }, + "model": { + "method": { + "workflow": { + "name": "sige alloy bandgap prediciton using least squares regression", + "app": "machine_learning", + "units": [ + { + "flowchartId": "1", + "head": true, + "type": "execution", + "name": "fit_MLmethod", + "next": "2", + "execution": { + "app": { + "name": "ml", + "exec": "rupy", + "version": "0.1.0" + }, + "preProcessors": [ + { + "type": "function", + "name": "prepare_training_prediction_data", + "kwargs": [ + { + "key": "chemical_system", + "value": [ + "Si", + "Ge" + ] + }, + { + "key": "superset", + "value": false + }, + { + "key": "features", + "value": [ + "Si", + "Ge", + "lattice_volume" + ] + }, + { + "key": "target_properties", + "value":[ + "band_gaps" + ] + }, + { + "key": "owner_id", + "value": "paxJukXpDBiSRjfRZ" + }, + { + "key": "databases", + "value": [ + "ExabyteDB" + ] + } + ] + } + ], + "input": [ + { + "method": { + "type": "linear", + "subtype": "least_squares" + }, + "fitParameters":[ + { + "sample_weight": true, + "train_data_size": 0.75 + } + ], + "targetProperties":[ + "band_gaps" + ] + } + ] + }, + "results": [ + { + "property": "band_gaps", + "coefficients":[ + -3.339e-01, + 2.555e-01, + -1.005e-02 + ], + "intercept": 0.45, + "modelData": "include(../../../theory/ml/linear/input_data)" + } + ] + }, + { + "flowchartId": "2", + "type": "execution", + "name": "predict_property", + "head": false, + "execution": { + "app": { + "name": "ml", + "exec": "rupy", + "version": "0.1.0" + }, + "preProcessors": [ + { + "type": "function", + "name": "prepare_prediction_data", + "kwargs": [ + { + "key": "target_materials", + "value":[ + "Si5Ge11" + ] + }, + { + "key": "databases", + "value": [ + "ExabyteDB" + ] + } + ] + } + ], + "input": [ + { + "property": "band_gaps", + "coefficients":[ + -3.339e-01, + 2.555e-01, + -1.005e-02 + ], + "intercept": 0.45, + "modelData": "include(../../../theory/ml/linear/input_data)" + } + ] + }, + "results": [ + { + "name": "material", + "value": "Si5Ge11" + }, + { + "name": "band_gaps", + "value": 0.45, + "units": "eV" + } + ] + } + ] + } + } + }, + "_project": { + "_id": "56c569d7fe45004bec30b5e7", + "name": "Project 1", + "owner": { + "_id": "sdkucJLKbsaa2ajksh", + "name": "demo", + "type": 10 + }, + "slug": "project-1", + "goldName": "exabyte-project-1" + }, + "version": "0.1.0", + "owner": { + "_id": "paxJukXpDBiSRjfRZ", + "name": "demo", + "type": 10 + }, + "creator": { + "username": "demo", + "_id": "aljflasj01hhsdf" + } +} diff --git a/schema/job/input.json b/schema/job/input.json index 361d451ec..0ea35c0ef 100644 --- a/schema/job/input.json +++ b/schema/job/input.json @@ -4,7 +4,12 @@ "type": "object", "oneOf": [ { + "description": "ml inputs with method type and fit parameters", "$ref": "file:theory/ml/input.json" + }, + { + "description": "ml inputs with saved method parameters", + "$ref": "file:theory/ml/linear/parameters.json" } ] } diff --git a/schema/job/model/method/workflow/unit.json b/schema/job/model/method/workflow/unit.json index 42f76d8a8..56885a7a8 100644 --- a/schema/job/model/method/workflow/unit.json +++ b/schema/job/model/method/workflow/unit.json @@ -65,7 +65,14 @@ "description": "Resulting properties extracted from the unit, besides the textual output.", "type": "array", "items": { - "$ref": "file:unit/_result.json" + "oneOf": [ + { + "$ref": "file:unit/_result.json" + }, + { + "$ref": "../../../theory/ml/linear/parameters.json" + } + ] } }, "execution": { From df361fbcf70c2b9e773d2637d9c76f0a24c043c6 Mon Sep 17 00:00:00 2001 From: Phani Date: Wed, 8 Mar 2017 19:52:32 -0800 Subject: [PATCH 15/63] feature/SOF-2046 fixed ML workflow json --- .../workflow/bandgap_prediction_workflow.json | 38 ++++++------------- .../ml/linear/{input_data => input_data.json} | 0 example/job/theory/ml/linear/parameters.json | 2 +- schema/job/model/method/workflow/unit.json | 9 +---- .../{inputData.json => input_data.json} | 0 schema/job/theory/ml/linear/parameters.json | 2 +- 6 files changed, 14 insertions(+), 37 deletions(-) rename example/job/theory/ml/linear/{input_data => input_data.json} (100%) rename schema/job/theory/ml/linear/{inputData.json => input_data.json} (100%) diff --git a/example/job/software/ml/workflow/bandgap_prediction_workflow.json b/example/job/software/ml/workflow/bandgap_prediction_workflow.json index cacd85bf2..b39076203 100644 --- a/example/job/software/ml/workflow/bandgap_prediction_workflow.json +++ b/example/job/software/ml/workflow/bandgap_prediction_workflow.json @@ -31,7 +31,7 @@ "preProcessors": [ { "type": "function", - "name": "prepare_training_prediction_data", + "name": "prepare_data", "kwargs": [ { "key": "chemical_system", @@ -55,7 +55,7 @@ { "key": "target_properties", "value":[ - "band_gaps" + "band_gap" ] }, { @@ -84,21 +84,14 @@ } ], "targetProperties":[ - "band_gaps" + "band_gap" ] } ] }, "results": [ { - "property": "band_gaps", - "coefficients":[ - -3.339e-01, - 2.555e-01, - -1.005e-02 - ], - "intercept": 0.45, - "modelData": "include(../../../theory/ml/linear/input_data)" + "name": "model_parameters" } ] }, @@ -116,10 +109,10 @@ "preProcessors": [ { "type": "function", - "name": "prepare_prediction_data", + "name": "prepare_data", "kwargs": [ { - "key": "target_materials", + "key": "materials_names", "value":[ "Si5Ge11" ] @@ -135,26 +128,17 @@ ], "input": [ { - "property": "band_gaps", - "coefficients":[ - -3.339e-01, - 2.555e-01, - -1.005e-02 - ], - "intercept": 0.45, - "modelData": "include(../../../theory/ml/linear/input_data)" + "scope": "1", + "name": "model_parameters" } ] }, "results": [ { - "name": "material", - "value": "Si5Ge11" + "name": "target_material" }, { - "name": "band_gaps", - "value": 0.45, - "units": "eV" + "name": "band_gap" } ] } @@ -181,6 +165,6 @@ }, "creator": { "username": "demo", - "_id": "aljflasj01hhsdf" + "_id": "paxJukXpDBiSRjfRZ" } } diff --git a/example/job/theory/ml/linear/input_data b/example/job/theory/ml/linear/input_data.json similarity index 100% rename from example/job/theory/ml/linear/input_data rename to example/job/theory/ml/linear/input_data.json diff --git a/example/job/theory/ml/linear/parameters.json b/example/job/theory/ml/linear/parameters.json index d6097012a..79576b451 100644 --- a/example/job/theory/ml/linear/parameters.json +++ b/example/job/theory/ml/linear/parameters.json @@ -7,6 +7,6 @@ ], "intercept": 0.45, "modelData" : { - "...": "include(input_data)" + "...": "include(input_data.json)" } } diff --git a/schema/job/model/method/workflow/unit.json b/schema/job/model/method/workflow/unit.json index 56885a7a8..42f76d8a8 100644 --- a/schema/job/model/method/workflow/unit.json +++ b/schema/job/model/method/workflow/unit.json @@ -65,14 +65,7 @@ "description": "Resulting properties extracted from the unit, besides the textual output.", "type": "array", "items": { - "oneOf": [ - { - "$ref": "file:unit/_result.json" - }, - { - "$ref": "../../../theory/ml/linear/parameters.json" - } - ] + "$ref": "file:unit/_result.json" } }, "execution": { diff --git a/schema/job/theory/ml/linear/inputData.json b/schema/job/theory/ml/linear/input_data.json similarity index 100% rename from schema/job/theory/ml/linear/inputData.json rename to schema/job/theory/ml/linear/input_data.json diff --git a/schema/job/theory/ml/linear/parameters.json b/schema/job/theory/ml/linear/parameters.json index db240e23f..2c9f22afa 100644 --- a/schema/job/theory/ml/linear/parameters.json +++ b/schema/job/theory/ml/linear/parameters.json @@ -15,7 +15,7 @@ "description": "intercept (shift) from the linear fit of data points" }, "inputData": { - "$ref":"file:inputData.json" + "$ref":"file:input_data.json" } }, "required": [ From d5c391b665776fd51edb6971dafbda9f0179cc96 Mon Sep 17 00:00:00 2001 From: Phani Date: Wed, 8 Mar 2017 21:20:39 -0800 Subject: [PATCH 16/63] fixed ml workflow path and input parameters --- .../workflow/fit_predict_band_gap.json} | 7 ++----- example/job/theory/ml/input.json | 2 +- example/job/theory/ml/linear/parameters.json | 4 ++-- schema/job/theory/ml/linear/input_data.json | 2 +- 4 files changed, 6 insertions(+), 9 deletions(-) rename example/job/software/ml/{workflow/bandgap_prediction_workflow.json => linear/workflow/fit_predict_band_gap.json} (96%) diff --git a/example/job/software/ml/workflow/bandgap_prediction_workflow.json b/example/job/software/ml/linear/workflow/fit_predict_band_gap.json similarity index 96% rename from example/job/software/ml/workflow/bandgap_prediction_workflow.json rename to example/job/software/ml/linear/workflow/fit_predict_band_gap.json index b39076203..2b936bdcf 100644 --- a/example/job/software/ml/workflow/bandgap_prediction_workflow.json +++ b/example/job/software/ml/linear/workflow/fit_predict_band_gap.json @@ -91,7 +91,7 @@ }, "results": [ { - "name": "model_parameters" + "name": "ml_method_parameters" } ] }, @@ -129,14 +129,11 @@ "input": [ { "scope": "1", - "name": "model_parameters" + "name": "ml_method_parameters" } ] }, "results": [ - { - "name": "target_material" - }, { "name": "band_gap" } diff --git a/example/job/theory/ml/input.json b/example/job/theory/ml/input.json index f4de8eb76..52dc214ba 100644 --- a/example/job/theory/ml/input.json +++ b/example/job/theory/ml/input.json @@ -7,6 +7,6 @@ "sample_weight" ], "targetProperties":[ - "band_gaps" + "band_gap" ] } diff --git a/example/job/theory/ml/linear/parameters.json b/example/job/theory/ml/linear/parameters.json index 79576b451..ffa05bcc9 100644 --- a/example/job/theory/ml/linear/parameters.json +++ b/example/job/theory/ml/linear/parameters.json @@ -1,12 +1,12 @@ { - "property": "band_gaps", + "property": "band_gap", "coefficients":[ -3.339e-01, 2.555e-01, -1.005e-02 ], "intercept": 0.45, - "modelData" : { + "inputData" : { "...": "include(input_data.json)" } } diff --git a/schema/job/theory/ml/linear/input_data.json b/schema/job/theory/ml/linear/input_data.json index 6b6c7c1f5..cc2e5380e 100644 --- a/schema/job/theory/ml/linear/input_data.json +++ b/schema/job/theory/ml/linear/input_data.json @@ -1,6 +1,6 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "descritpion": "Input data used for ML method", + "description": "Input data used for ML method", "title": "input data schema", "type": "object" } From 79ddbb458abf9936d2d60efa7c6a4561a34e3933 Mon Sep 17 00:00:00 2001 From: Phani Date: Thu, 9 Mar 2017 10:33:40 -0800 Subject: [PATCH 17/63] feature/SOF-2046 adjusted target porperty name and method parameters --- .../linear/workflow/fit_predict_band_gap.json | 6 ++--- example/job/theory/ml/linear/parameters.json | 26 +++++++++++++------ schema/job/theory/ml/linear/parameters.json | 8 +++--- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/example/job/software/ml/linear/workflow/fit_predict_band_gap.json b/example/job/software/ml/linear/workflow/fit_predict_band_gap.json index 2b936bdcf..b827e870a 100644 --- a/example/job/software/ml/linear/workflow/fit_predict_band_gap.json +++ b/example/job/software/ml/linear/workflow/fit_predict_band_gap.json @@ -55,7 +55,7 @@ { "key": "target_properties", "value":[ - "band_gap" + "band_gaps" ] }, { @@ -84,7 +84,7 @@ } ], "targetProperties":[ - "band_gap" + "band_gaps" ] } ] @@ -135,7 +135,7 @@ }, "results": [ { - "name": "band_gap" + "name": "band_gaps" } ] } diff --git a/example/job/theory/ml/linear/parameters.json b/example/job/theory/ml/linear/parameters.json index ffa05bcc9..b37482525 100644 --- a/example/job/theory/ml/linear/parameters.json +++ b/example/job/theory/ml/linear/parameters.json @@ -1,12 +1,22 @@ { - "property": "band_gap", - "coefficients":[ - -3.339e-01, - 2.555e-01, - -1.005e-02 + "property": "band_gaps", + "coefficients": [ + [ + -3.339e-01, + 2.555e-01, + -1.005e-02 + ], + [ + -3.339e-01, + 2.555e-01, + -1.005e-02 + ] ], - "intercept": 0.45, - "inputData" : { - "...": "include(input_data.json)" + "intercept": [ + 0.5, + 0.5 + ], + "inputData": { + "...": "include(input_data.json)" } } diff --git a/schema/job/theory/ml/linear/parameters.json b/schema/job/theory/ml/linear/parameters.json index 2c9f22afa..882c199da 100644 --- a/schema/job/theory/ml/linear/parameters.json +++ b/schema/job/theory/ml/linear/parameters.json @@ -8,14 +8,14 @@ }, "coefficients": { "type": "array", - "description": "weights/coefficients of the function from linear or non-linear fit" + "description": "array of weights/coefficients of the function from linear or non-linear fit for each target in property vector" }, "intercept": { - "type": "number", - "description": "intercept (shift) from the linear fit of data points" + "type": "array", + "description": "list of intercepts (shift) from the linear or non-linear fit of data points" }, "inputData": { - "$ref":"file:input_data.json" + "$ref": "file:input_data.json" } }, "required": [ From aac4917c3f65faa13c6bd7465a5f6e6f7d901768 Mon Sep 17 00:00:00 2001 From: Phani Date: Thu, 9 Mar 2017 10:35:47 -0800 Subject: [PATCH 18/63] fixed ML input example json --- example/job/theory/ml/input.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/job/theory/ml/input.json b/example/job/theory/ml/input.json index 52dc214ba..f4de8eb76 100644 --- a/example/job/theory/ml/input.json +++ b/example/job/theory/ml/input.json @@ -7,6 +7,6 @@ "sample_weight" ], "targetProperties":[ - "band_gap" + "band_gaps" ] } From 7c07bc1ed8d180a52ebe0e5e21d9f05cc1717886 Mon Sep 17 00:00:00 2001 From: Phani Date: Thu, 9 Mar 2017 11:10:31 -0800 Subject: [PATCH 19/63] adjusted method parameters schema --- schema/job/theory/ml/linear/parameters.json | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/schema/job/theory/ml/linear/parameters.json b/schema/job/theory/ml/linear/parameters.json index 882c199da..469bcb99c 100644 --- a/schema/job/theory/ml/linear/parameters.json +++ b/schema/job/theory/ml/linear/parameters.json @@ -8,11 +8,19 @@ }, "coefficients": { "type": "array", - "description": "array of weights/coefficients of the function from linear or non-linear fit for each target in property vector" + "description": "Array of arrays with weights/coefficients from the linear or non-linear fit", + "items":{ + "type": "array", + "description": "array of weights/coefficients of the function for each target in property vector" + } }, "intercept": { "type": "array", - "description": "list of intercepts (shift) from the linear or non-linear fit of data points" + "description": "list of intercepts (shift) from the linear or non-linear fit of data points", + "items":{ + "type": "number", + "description": "intercept corresponding to the fit for each target in property vector" + } }, "inputData": { "$ref": "file:input_data.json" From e9a088ee7916ecde902e7fd7464fdd63fb3b10c0 Mon Sep 17 00:00:00 2001 From: Phani Date: Thu, 9 Mar 2017 11:17:33 -0800 Subject: [PATCH 20/63] adjusted method parameters json --- schema/job/theory/ml/linear/parameters.json | 29 ++++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/schema/job/theory/ml/linear/parameters.json b/schema/job/theory/ml/linear/parameters.json index 469bcb99c..0bb4a8f85 100644 --- a/schema/job/theory/ml/linear/parameters.json +++ b/schema/job/theory/ml/linear/parameters.json @@ -9,21 +9,24 @@ "coefficients": { "type": "array", "description": "Array of arrays with weights/coefficients from the linear or non-linear fit", - "items":{ + "items": { "type": "array", - "description": "array of weights/coefficients of the function for each target in property vector" - } - }, - "intercept": { - "type": "array", - "description": "list of intercepts (shift) from the linear or non-linear fit of data points", - "items":{ - "type": "number", - "description": "intercept corresponding to the fit for each target in property vector" + "description": "array of weights/coefficients of the function for each target in property vector", + "items": { + "type": "number" + } + }, + "intercept": { + "type": "array", + "description": "list of intercepts (shift) from the linear or non-linear fit of data points", + "items": { + "type": "number", + "description": "intercept corresponding to the fit for each target in property vector" + } + }, + "inputData": { + "$ref": "file:input_data.json" } - }, - "inputData": { - "$ref": "file:input_data.json" } }, "required": [ From 1d7bfb1a4cc39175455ad808cec3ea90e3517b12 Mon Sep 17 00:00:00 2001 From: Phani Date: Thu, 16 Mar 2017 15:55:47 -0700 Subject: [PATCH 21/63] adjusted ML input schema --- example/job/theory/ml/input.json | 11 +----- example/job/theory/ml/linear/input.json | 12 ++++++ example/job/theory/ml/linear/input_data.json | 20 +++++----- schema/job/input.json | 8 +--- schema/job/theory/ml/input.json | 35 +++-------------- schema/job/theory/ml/linear/input.json | 40 ++++++++++++++++++++ 6 files changed, 70 insertions(+), 56 deletions(-) create mode 100644 example/job/theory/ml/linear/input.json create mode 100644 schema/job/theory/ml/linear/input.json diff --git a/example/job/theory/ml/input.json b/example/job/theory/ml/input.json index f4de8eb76..9cf9bcb42 100644 --- a/example/job/theory/ml/input.json +++ b/example/job/theory/ml/input.json @@ -1,12 +1,3 @@ { - "method":{ - "type": "linear", - "subtype": "least_squares" - }, - "fitParameters": [ - "sample_weight" - ], - "targetProperties":[ - "band_gaps" - ] + "...": "include(linear/input.json)" } diff --git a/example/job/theory/ml/linear/input.json b/example/job/theory/ml/linear/input.json new file mode 100644 index 000000000..f3b57410a --- /dev/null +++ b/example/job/theory/ml/linear/input.json @@ -0,0 +1,12 @@ +{ + "method":{ + "type": "linear", + "subtype": "least_squares" + }, + "targetProperties":[ + "band_gaps" + ], + "methodParameters":{ + "...": "include(parameters.json)" + } +} diff --git a/example/job/theory/ml/linear/input_data.json b/example/job/theory/ml/linear/input_data.json index 338ea1019..9cbc701f3 100644 --- a/example/job/theory/ml/linear/input_data.json +++ b/example/job/theory/ml/linear/input_data.json @@ -1,12 +1,12 @@ { - "c8zG3XcnnTybfP3QQ": { - "Ge": 0.3125, - "Si": 0.6875, - "lattice_volume": 327.1127749111 - }, - "wWK2XCyivQrG8j34Z": { - "Ge": 0.1875, - "Si": 0.8125, - "lattice_volume": 327.1127749111 - } + "c8zG3XcnnTybfP3QQ": { + "Ge": 0.3125, + "Si": 0.6875, + "lattice_volume": 327.1127749111 + }, + "wWK2XCyivQrG8j34Z": { + "Ge": 0.1875, + "Si": 0.8125, + "lattice_volume": 327.1127749111 + } } diff --git a/schema/job/input.json b/schema/job/input.json index 0ea35c0ef..a3f2e27ce 100644 --- a/schema/job/input.json +++ b/schema/job/input.json @@ -1,15 +1,11 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "application schema", + "title": "Execution unit object input schema", "type": "object", "oneOf": [ { - "description": "ml inputs with method type and fit parameters", + "description": "input schema for ml methods.", "$ref": "file:theory/ml/input.json" - }, - { - "description": "ml inputs with saved method parameters", - "$ref": "file:theory/ml/linear/parameters.json" } ] } diff --git a/schema/job/theory/ml/input.json b/schema/job/theory/ml/input.json index 4d73fd9a5..4d48d6ad2 100644 --- a/schema/job/theory/ml/input.json +++ b/schema/job/theory/ml/input.json @@ -1,36 +1,11 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Execution unit input schema for machine learning", + "title": "Machine Learning input schema", "type": "object", - "properties": { - "method": { - "description": "method information", - "type": "object", - "properties": { - "type": { - "description": "method type", - "type": "string" - }, - "subtype": { - "description": "method subtype", - "type": "string" - } - }, - "required": [ - "type", - "subtype" - ] - }, - "fitParameters": { - "description": "additional parameters used for model fitting using method subtype", - "type": "array" - }, - "targetProperties": { - "description": "target properties to predict", - "type": "array" + "oneOf": [ + { + "description": "input schema for linear methods", + "$ref": "file:linear/input.json" } - }, - "required": [ - "targetProperties" ] } diff --git a/schema/job/theory/ml/linear/input.json b/schema/job/theory/ml/linear/input.json new file mode 100644 index 000000000..30f8049bf --- /dev/null +++ b/schema/job/theory/ml/linear/input.json @@ -0,0 +1,40 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Linear methods input schema", + "type": "object", + "properties": { + "method": { + "description": "method information", + "type": "object", + "properties": { + "type": { + "description": "method type", + "type": "string" + }, + "subtype": { + "description": "method subtype", + "type": "string" + } + }, + "required": [ + "type", + "subtype" + ] + }, + "fitParameters": { + "description": "additional parameters used for model fitting using method subtype", + "type": "array" + }, + "targetProperties": { + "description": "target properties to predict", + "type": "array" + }, + "methodParameters":{ + "description": "ml input with saved regression method parameters", + "$ref": "file:parameters.json" + } + }, + "required": [ + "targetProperties" + ] +} From 397810b9b3c3f994727f29f2cb566ac0136d2bf9 Mon Sep 17 00:00:00 2001 From: Phani Date: Thu, 16 Mar 2017 22:07:19 -0700 Subject: [PATCH 22/63] modified ML POC input schema and example workflow --- .../linear/workflow/fit_predict_band_gap.json | 98 ++++++------------- example/job/theory/ml/linear/input.json | 20 +++- schema/job/theory/ml/linear/_input.json | 19 ++++ schema/job/theory/ml/linear/input.json | 34 +++++-- 4 files changed, 92 insertions(+), 79 deletions(-) create mode 100644 schema/job/theory/ml/linear/_input.json diff --git a/example/job/software/ml/linear/workflow/fit_predict_band_gap.json b/example/job/software/ml/linear/workflow/fit_predict_band_gap.json index b827e870a..d9be6d59c 100644 --- a/example/job/software/ml/linear/workflow/fit_predict_band_gap.json +++ b/example/job/software/ml/linear/workflow/fit_predict_band_gap.json @@ -28,63 +28,34 @@ "exec": "rupy", "version": "0.1.0" }, - "preProcessors": [ - { - "type": "function", - "name": "prepare_data", - "kwargs": [ - { - "key": "chemical_system", - "value": [ - "Si", - "Ge" - ] - }, - { - "key": "superset", - "value": false - }, - { - "key": "features", - "value": [ - "Si", - "Ge", - "lattice_volume" - ] - }, - { - "key": "target_properties", - "value":[ - "band_gaps" - ] - }, - { - "key": "owner_id", - "value": "paxJukXpDBiSRjfRZ" - }, - { - "key": "databases", - "value": [ - "ExabyteDB" - ] - } - ] - } - ], + "preProcessors": [], "input": [ { "method": { "type": "linear", "subtype": "least_squares" }, - "fitParameters":[ + "fitParameters": [ { "sample_weight": true, "train_data_size": 0.75 } ], - "targetProperties":[ + "targetProperties": [ "band_gaps" + ], + "features": [ + "elemental_composition", + "density" + ], + "materialIds": [ + "3qp8j2CqCgsSa6ZKj", + "NdRNhkKWv4Xj8sxd8", + "AWLTt3qa5x6xRG353", + "cR2uFML56FL6rMf2v" + ], + "ownerId": [ + "paxJukXpDBiSRjfRZ" ] } ] @@ -106,30 +77,23 @@ "exec": "rupy", "version": "0.1.0" }, - "preProcessors": [ - { - "type": "function", - "name": "prepare_data", - "kwargs": [ - { - "key": "materials_names", - "value":[ - "Si5Ge11" - ] - }, - { - "key": "databases", - "value": [ - "ExabyteDB" - ] - } - ] - } - ], + "preProcessors": [], "input": [ { - "scope": "1", - "name": "ml_method_parameters" + "method": { + "type": "linear", + "subtype": "least_squares" + }, + "materialIds": [ + "3qp8j2CqCgsSa6ZKj" + ], + "targetProperties": [ + "band_gaps" + ], + "methodParameters": { + "scope": "1", + "name": "ml_method_parameters" + } } ] }, diff --git a/example/job/theory/ml/linear/input.json b/example/job/theory/ml/linear/input.json index f3b57410a..24e78e869 100644 --- a/example/job/theory/ml/linear/input.json +++ b/example/job/theory/ml/linear/input.json @@ -1,12 +1,22 @@ { - "method":{ + "method": { "type": "linear", "subtype": "least_squares" }, - "targetProperties":[ + "targetProperties": [ "band_gaps" ], - "methodParameters":{ - "...": "include(parameters.json)" - } + "fitParameters": [ + "sample_weight" + ], + "features": [ + "elemental_composition", + "density" + ], + "materialIds": [ + "3qp8j2CqCgsSa6ZKj", + "NdRNhkKWv4Xj8sxd8", + "AWLTt3qa5x6xRG353", + "cR2uFML56FL6rMf2v" + ] } diff --git a/schema/job/theory/ml/linear/_input.json b/schema/job/theory/ml/linear/_input.json new file mode 100644 index 000000000..0ce4cf650 --- /dev/null +++ b/schema/job/theory/ml/linear/_input.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Input schema for using variables from workflow scope", + "type": "object", + "properties": { + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id'", + "type": "string" + }, + "name": { + "description": "Name of the input data. e.g. ml_method_parameters", + "type": "string" + } + }, + "required": [ + "scope", + "name" + ] +} diff --git a/schema/job/theory/ml/linear/input.json b/schema/job/theory/ml/linear/input.json index 30f8049bf..862a67a9b 100644 --- a/schema/job/theory/ml/linear/input.json +++ b/schema/job/theory/ml/linear/input.json @@ -21,17 +21,37 @@ "subtype" ] }, - "fitParameters": { - "description": "additional parameters used for model fitting using method subtype", - "type": "array" - }, "targetProperties": { "description": "target properties to predict", "type": "array" }, - "methodParameters":{ - "description": "ml input with saved regression method parameters", - "$ref": "file:parameters.json" + "features": { + "description": "material features used for model fitting", + "type": "array" + }, + "materialIds": { + "description": "List of material ids corresponding to materials used for model fitting or property prediction", + "type": "array" + }, + "ownerId": { + "description": "List of owner ids to filter materials created by specific user", + "type": "array" + }, + "fitParameters": { + "description": "additional parameters used for model fitting using method subtype", + "type": "array" + }, + "methodParameters": { + "oneOf": [ + { + "description": "ml input with saved regression method parameters", + "$ref": "file:parameters.json" + }, + { + "description": "ml input with method parameters from workflow scope", + "$ref": "file:_input.json" + } + ] } }, "required": [ From f07719467bd5a9ac6d6b1f2f8a30336299fb665e Mon Sep 17 00:00:00 2001 From: Phani Date: Fri, 17 Mar 2017 14:48:14 -0700 Subject: [PATCH 23/63] updated ML input JSON schema --- .../linear/workflow/fit_predict_band_gap.json | 21 ++++++------ .../job/theory/ml/linear/fit_parameters.json | 4 +++ example/job/theory/ml/linear/input.json | 13 +++----- ...arameters.json => predict_parameters.json} | 0 example/job/theory/ml/parameters.json | 3 ++ schema/job/theory/ml/linear.json | 3 +- schema/job/theory/ml/linear/_input.json | 19 ----------- .../job/theory/ml/linear/fit_parameters.json | 18 +++++++++++ schema/job/theory/ml/linear/input.json | 32 ++++++++----------- ...arameters.json => predict_parameters.json} | 22 ++++++------- schema/job/theory/ml/parameters.json | 18 +++++++++++ schema/job/theory/ml/task.json | 13 ++++++++ 12 files changed, 96 insertions(+), 70 deletions(-) create mode 100644 example/job/theory/ml/linear/fit_parameters.json rename example/job/theory/ml/linear/{parameters.json => predict_parameters.json} (100%) create mode 100644 example/job/theory/ml/parameters.json delete mode 100644 schema/job/theory/ml/linear/_input.json create mode 100644 schema/job/theory/ml/linear/fit_parameters.json rename schema/job/theory/ml/linear/{parameters.json => predict_parameters.json} (63%) create mode 100644 schema/job/theory/ml/parameters.json create mode 100644 schema/job/theory/ml/task.json diff --git a/example/job/software/ml/linear/workflow/fit_predict_band_gap.json b/example/job/software/ml/linear/workflow/fit_predict_band_gap.json index d9be6d59c..10655fd70 100644 --- a/example/job/software/ml/linear/workflow/fit_predict_band_gap.json +++ b/example/job/software/ml/linear/workflow/fit_predict_band_gap.json @@ -31,16 +31,15 @@ "preProcessors": [], "input": [ { + "task": "fit", "method": { "type": "linear", "subtype": "least_squares" }, - "fitParameters": [ - { - "sample_weight": true, - "train_data_size": 0.75 - } - ], + "parameters": { + "sampleWeight": true, + "trainDataSize": 0.75 + }, "targetProperties": [ "band_gaps" ], @@ -53,16 +52,13 @@ "NdRNhkKWv4Xj8sxd8", "AWLTt3qa5x6xRG353", "cR2uFML56FL6rMf2v" - ], - "ownerId": [ - "paxJukXpDBiSRjfRZ" ] } ] }, "results": [ { - "name": "ml_method_parameters" + "name": "method_parameters" } ] }, @@ -80,6 +76,7 @@ "preProcessors": [], "input": [ { + "task": "predict", "method": { "type": "linear", "subtype": "least_squares" @@ -90,9 +87,9 @@ "targetProperties": [ "band_gaps" ], - "methodParameters": { + "parameters": { "scope": "1", - "name": "ml_method_parameters" + "name": "method_parameters" } } ] diff --git a/example/job/theory/ml/linear/fit_parameters.json b/example/job/theory/ml/linear/fit_parameters.json new file mode 100644 index 000000000..44afd195d --- /dev/null +++ b/example/job/theory/ml/linear/fit_parameters.json @@ -0,0 +1,4 @@ +{ + "sampleWeight": true, + "trainDataSize": 0.75 +} diff --git a/example/job/theory/ml/linear/input.json b/example/job/theory/ml/linear/input.json index 24e78e869..82e056bdf 100644 --- a/example/job/theory/ml/linear/input.json +++ b/example/job/theory/ml/linear/input.json @@ -1,4 +1,5 @@ { + "task": "predict", "method": { "type": "linear", "subtype": "least_squares" @@ -6,17 +7,13 @@ "targetProperties": [ "band_gaps" ], - "fitParameters": [ - "sample_weight" - ], - "features": [ - "elemental_composition", - "density" - ], "materialIds": [ "3qp8j2CqCgsSa6ZKj", "NdRNhkKWv4Xj8sxd8", "AWLTt3qa5x6xRG353", "cR2uFML56FL6rMf2v" - ] + ], + "parameters": { + "...": "include(../parameters.json)" + } } diff --git a/example/job/theory/ml/linear/parameters.json b/example/job/theory/ml/linear/predict_parameters.json similarity index 100% rename from example/job/theory/ml/linear/parameters.json rename to example/job/theory/ml/linear/predict_parameters.json diff --git a/example/job/theory/ml/parameters.json b/example/job/theory/ml/parameters.json new file mode 100644 index 000000000..3a03a6d58 --- /dev/null +++ b/example/job/theory/ml/parameters.json @@ -0,0 +1,3 @@ +{ + "...": "include(linear/predict_parameters.json)" +} diff --git a/schema/job/theory/ml/linear.json b/schema/job/theory/ml/linear.json index 05c22a0d0..15137e9ca 100644 --- a/schema/job/theory/ml/linear.json +++ b/schema/job/theory/ml/linear.json @@ -11,7 +11,8 @@ "$ref": "file:linear/precision.json" }, "data":{ - "$ref":"file:linear/parameters.json" + "description": "object with method parameters and input data", + "$ref":"file:linear/predict_parameters.json" } } } diff --git a/schema/job/theory/ml/linear/_input.json b/schema/job/theory/ml/linear/_input.json deleted file mode 100644 index 0ce4cf650..000000000 --- a/schema/job/theory/ml/linear/_input.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Input schema for using variables from workflow scope", - "type": "object", - "properties": { - "scope": { - "description": "Scope of the variable. e.g. 'global' or 'flowchart_id'", - "type": "string" - }, - "name": { - "description": "Name of the input data. e.g. ml_method_parameters", - "type": "string" - } - }, - "required": [ - "scope", - "name" - ] -} diff --git a/schema/job/theory/ml/linear/fit_parameters.json b/schema/job/theory/ml/linear/fit_parameters.json new file mode 100644 index 000000000..c46d83a0a --- /dev/null +++ b/schema/job/theory/ml/linear/fit_parameters.json @@ -0,0 +1,18 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "linear methods fit parameters schema", + "properties": { + "sampleWeight": { + "type": "boolean", + "description": "specify whether to scale the response variables" + }, + "trainDataSize": { + "type": "number", + "description": "fraction of the training set used for training the model" + } + }, + "required": [ + "sampleWeight" + ] + +} diff --git a/schema/job/theory/ml/linear/input.json b/schema/job/theory/ml/linear/input.json index 862a67a9b..9c3a7ee28 100644 --- a/schema/job/theory/ml/linear/input.json +++ b/schema/job/theory/ml/linear/input.json @@ -3,6 +3,10 @@ "title": "Linear methods input schema", "type": "object", "properties": { + "task": { + "description": "task name. Eg: predict or fit", + "type": "string" + }, "method": { "description": "method information", "type": "object", @@ -33,28 +37,18 @@ "description": "List of material ids corresponding to materials used for model fitting or property prediction", "type": "array" }, - "ownerId": { - "description": "List of owner ids to filter materials created by specific user", - "type": "array" - }, - "fitParameters": { - "description": "additional parameters used for model fitting using method subtype", - "type": "array" - }, - "methodParameters": { - "oneOf": [ - { - "description": "ml input with saved regression method parameters", - "$ref": "file:parameters.json" - }, - { - "description": "ml input with method parameters from workflow scope", - "$ref": "file:_input.json" - } - ] + "parameters": { + "$ref": "file:../parameters.json" } }, + "allOf": [ + { + "$ref": "file:../task.json" + } + ], "required": [ + "task", + "materialIds", "targetProperties" ] } diff --git a/schema/job/theory/ml/linear/parameters.json b/schema/job/theory/ml/linear/predict_parameters.json similarity index 63% rename from schema/job/theory/ml/linear/parameters.json rename to schema/job/theory/ml/linear/predict_parameters.json index 0bb4a8f85..3fd188f36 100644 --- a/schema/job/theory/ml/linear/parameters.json +++ b/schema/job/theory/ml/linear/predict_parameters.json @@ -15,18 +15,18 @@ "items": { "type": "number" } - }, - "intercept": { - "type": "array", - "description": "list of intercepts (shift) from the linear or non-linear fit of data points", - "items": { - "type": "number", - "description": "intercept corresponding to the fit for each target in property vector" - } - }, - "inputData": { - "$ref": "file:input_data.json" } + }, + "intercept": { + "type": "array", + "description": "list of intercepts (shift) from the linear or non-linear fit of data points", + "items": { + "type": "number", + "description": "intercept corresponding to the fit for each target in property vector" + } + }, + "inputData": { + "$ref": "file:input_data.json" } }, "required": [ diff --git a/schema/job/theory/ml/parameters.json b/schema/job/theory/ml/parameters.json new file mode 100644 index 000000000..588b3562a --- /dev/null +++ b/schema/job/theory/ml/parameters.json @@ -0,0 +1,18 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "parameters schema for ml tasks", + "oneOf": [ + { + "description": "ml input with saved linear method parameters. Example method: regression", + "$ref": "file:linear/predict_parameters.json" + }, + { + "description": "ml input for prediction, linear or non-linear method parameters from workflow scope", + "$ref": "file:../../model/method/workflow/unit/_input.json" + }, + { + "description": "fit parameters for linear methods. Example method: regression", + "$ref": "file:linear/fit_parameters.json" + } + ] +} diff --git a/schema/job/theory/ml/task.json b/schema/job/theory/ml/task.json new file mode 100644 index 000000000..a8057e18e --- /dev/null +++ b/schema/job/theory/ml/task.json @@ -0,0 +1,13 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "machine learning task schema", + "description": "machine learning task name", + "properties": { + "task": { + "enum": [ + "fit", + "predict" + ] + } + } +} From 766a89e673b7f971303e4228f520f18420897945 Mon Sep 17 00:00:00 2001 From: Phani Date: Fri, 17 Mar 2017 17:44:14 -0700 Subject: [PATCH 24/63] reorganized ML tasks and input schema --- schema/job/theory/ml/input.json | 52 ++++++++++++++++-- .../job/theory/ml/linear/fit_parameters.json | 1 - schema/job/theory/ml/linear/input.json | 54 ------------------- schema/job/theory/ml/parameters.json | 2 +- schema/job/theory/ml/task.json | 13 ----- 5 files changed, 48 insertions(+), 74 deletions(-) delete mode 100644 schema/job/theory/ml/linear/input.json delete mode 100644 schema/job/theory/ml/task.json diff --git a/schema/job/theory/ml/input.json b/schema/job/theory/ml/input.json index 4d48d6ad2..5656a95fa 100644 --- a/schema/job/theory/ml/input.json +++ b/schema/job/theory/ml/input.json @@ -1,11 +1,53 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Machine Learning input schema", + "title": "Linear methods input schema", "type": "object", - "oneOf": [ - { - "description": "input schema for linear methods", - "$ref": "file:linear/input.json" + "properties": { + "task": { + "description": "task name. Eg: predict or fit", + "type": "string", + "enum": [ + "fit", + "predict" + ] + }, + "method": { + "description": "method information", + "type": "object", + "properties": { + "type": { + "description": "method type", + "type": "string" + }, + "subtype": { + "description": "method subtype", + "type": "string" + } + }, + "required": [ + "type", + "subtype" + ] + }, + "targetProperties": { + "description": "target properties to predict", + "type": "array" + }, + "features": { + "description": "material features used for model fitting", + "type": "array" + }, + "materialIds": { + "description": "List of material ids corresponding to materials used for model fitting or property prediction", + "type": "array" + }, + "parameters": { + "$ref": "file:parameters.json" } + }, + "required": [ + "task", + "materialIds", + "targetProperties" ] } diff --git a/schema/job/theory/ml/linear/fit_parameters.json b/schema/job/theory/ml/linear/fit_parameters.json index c46d83a0a..567ff4c2d 100644 --- a/schema/job/theory/ml/linear/fit_parameters.json +++ b/schema/job/theory/ml/linear/fit_parameters.json @@ -14,5 +14,4 @@ "required": [ "sampleWeight" ] - } diff --git a/schema/job/theory/ml/linear/input.json b/schema/job/theory/ml/linear/input.json deleted file mode 100644 index 9c3a7ee28..000000000 --- a/schema/job/theory/ml/linear/input.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Linear methods input schema", - "type": "object", - "properties": { - "task": { - "description": "task name. Eg: predict or fit", - "type": "string" - }, - "method": { - "description": "method information", - "type": "object", - "properties": { - "type": { - "description": "method type", - "type": "string" - }, - "subtype": { - "description": "method subtype", - "type": "string" - } - }, - "required": [ - "type", - "subtype" - ] - }, - "targetProperties": { - "description": "target properties to predict", - "type": "array" - }, - "features": { - "description": "material features used for model fitting", - "type": "array" - }, - "materialIds": { - "description": "List of material ids corresponding to materials used for model fitting or property prediction", - "type": "array" - }, - "parameters": { - "$ref": "file:../parameters.json" - } - }, - "allOf": [ - { - "$ref": "file:../task.json" - } - ], - "required": [ - "task", - "materialIds", - "targetProperties" - ] -} diff --git a/schema/job/theory/ml/parameters.json b/schema/job/theory/ml/parameters.json index 588b3562a..bb915377c 100644 --- a/schema/job/theory/ml/parameters.json +++ b/schema/job/theory/ml/parameters.json @@ -7,7 +7,7 @@ "$ref": "file:linear/predict_parameters.json" }, { - "description": "ml input for prediction, linear or non-linear method parameters from workflow scope", + "description": "ml input from workflow scope", "$ref": "file:../../model/method/workflow/unit/_input.json" }, { diff --git a/schema/job/theory/ml/task.json b/schema/job/theory/ml/task.json deleted file mode 100644 index a8057e18e..000000000 --- a/schema/job/theory/ml/task.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "machine learning task schema", - "description": "machine learning task name", - "properties": { - "task": { - "enum": [ - "fit", - "predict" - ] - } - } -} From 4ea0521f0d7a9155e900b388e904880948eb1930 Mon Sep 17 00:00:00 2001 From: Phani Date: Fri, 17 Mar 2017 18:55:59 -0700 Subject: [PATCH 25/63] Re-added fit and predict keys `Fit` is used when no pre-trained model exists, `predict` is used for storing data about a pre-trained model --- .../linear/workflow/fit_predict_band_gap.json | 17 +++++---- schema/job/theory/ml/fit.json | 9 +++++ schema/job/theory/ml/input.json | 36 ++++++------------- schema/job/theory/ml/linear.json | 13 ++++--- .../{fit_parameters.json => arguments.json} | 2 +- schema/job/theory/ml/linear/fit.json | 14 ++++++++ schema/job/theory/ml/linear/predict.json | 20 +++++++++++ .../data.json} | 4 +-- .../data/data_frame.json} | 0 .../ml/linear/{ => predict}/precision.json | 0 schema/job/theory/ml/parameters.json | 18 ---------- schema/job/theory/ml/predict.json | 9 +++++ 12 files changed, 80 insertions(+), 62 deletions(-) create mode 100644 schema/job/theory/ml/fit.json rename schema/job/theory/ml/linear/{fit_parameters.json => arguments.json} (89%) create mode 100644 schema/job/theory/ml/linear/fit.json create mode 100644 schema/job/theory/ml/linear/predict.json rename schema/job/theory/ml/linear/{predict_parameters.json => predict/data.json} (94%) rename schema/job/theory/ml/linear/{input_data.json => predict/data/data_frame.json} (100%) rename schema/job/theory/ml/linear/{ => predict}/precision.json (100%) delete mode 100644 schema/job/theory/ml/parameters.json create mode 100644 schema/job/theory/ml/predict.json diff --git a/example/job/software/ml/linear/workflow/fit_predict_band_gap.json b/example/job/software/ml/linear/workflow/fit_predict_band_gap.json index 10655fd70..7498280e6 100644 --- a/example/job/software/ml/linear/workflow/fit_predict_band_gap.json +++ b/example/job/software/ml/linear/workflow/fit_predict_band_gap.json @@ -34,11 +34,11 @@ "task": "fit", "method": { "type": "linear", - "subtype": "least_squares" - }, - "parameters": { - "sampleWeight": true, - "trainDataSize": 0.75 + "subtype": "least_squares", + "parameters": { + "sampleWeight": true, + "trainDataSize": 0.75 + } }, "targetProperties": [ "band_gaps" @@ -78,8 +78,8 @@ { "task": "predict", "method": { - "type": "linear", - "subtype": "least_squares" + "scope": "1", + "name": "method_parameters" }, "materialIds": [ "3qp8j2CqCgsSa6ZKj" @@ -88,8 +88,7 @@ "band_gaps" ], "parameters": { - "scope": "1", - "name": "method_parameters" + } } ] diff --git a/schema/job/theory/ml/fit.json b/schema/job/theory/ml/fit.json new file mode 100644 index 000000000..c42a64601 --- /dev/null +++ b/schema/job/theory/ml/fit.json @@ -0,0 +1,9 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "fit schema", + "oneOf": [ + { + "$ref": "file:linear/fit.json" + } + ] +} diff --git a/schema/job/theory/ml/input.json b/schema/job/theory/ml/input.json index 5656a95fa..622ac973d 100644 --- a/schema/job/theory/ml/input.json +++ b/schema/job/theory/ml/input.json @@ -3,32 +3,21 @@ "title": "Linear methods input schema", "type": "object", "properties": { - "task": { - "description": "task name. Eg: predict or fit", - "type": "string", - "enum": [ - "fit", - "predict" - ] - }, - "method": { - "description": "method information", - "type": "object", - "properties": { - "type": { - "description": "method type", - "type": "string" + "predict": { + "oneOf": [ + { + "description": "one of the pre-trained ml methods", + "$ref": "file:predict.json" }, - "subtype": { - "description": "method subtype", - "type": "string" + { + "description": "method read from workflow scope", + "$ref": "file:../../model/method/workflow/unit/_input.json" } - }, - "required": [ - "type", - "subtype" ] }, + "fit": { + "$ref": "file:fit.json" + }, "targetProperties": { "description": "target properties to predict", "type": "array" @@ -40,9 +29,6 @@ "materialIds": { "description": "List of material ids corresponding to materials used for model fitting or property prediction", "type": "array" - }, - "parameters": { - "$ref": "file:parameters.json" } }, "required": [ diff --git a/schema/job/theory/ml/linear.json b/schema/job/theory/ml/linear.json index 15137e9ca..7d3d8a3fd 100644 --- a/schema/job/theory/ml/linear.json +++ b/schema/job/theory/ml/linear.json @@ -4,15 +4,14 @@ "properties": { "type": { "enum": [ - "least_squares" + "linear" ] }, - "precision": { - "$ref": "file:linear/precision.json" - }, - "data":{ - "description": "object with method parameters and input data", - "$ref":"file:linear/predict_parameters.json" + "subtype": { + "enum": [ + "least_squares", + "ridge" + ] } } } diff --git a/schema/job/theory/ml/linear/fit_parameters.json b/schema/job/theory/ml/linear/arguments.json similarity index 89% rename from schema/job/theory/ml/linear/fit_parameters.json rename to schema/job/theory/ml/linear/arguments.json index 567ff4c2d..ff48d0c2d 100644 --- a/schema/job/theory/ml/linear/fit_parameters.json +++ b/schema/job/theory/ml/linear/arguments.json @@ -1,6 +1,6 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "linear methods fit parameters schema", + "title": "linear methods fit arguments schema", "properties": { "sampleWeight": { "type": "boolean", diff --git a/schema/job/theory/ml/linear/fit.json b/schema/job/theory/ml/linear/fit.json new file mode 100644 index 000000000..f060eb6cd --- /dev/null +++ b/schema/job/theory/ml/linear/fit.json @@ -0,0 +1,14 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "List of methods", + "allOf": [ + { + "description": "one of the pre-trained ml methods", + "$ref": "file:../linear.json" + }, + { + "description": "method read from workflow scope", + "$ref": "file:arguments.json" + } + ] +} diff --git a/schema/job/theory/ml/linear/predict.json b/schema/job/theory/ml/linear/predict.json new file mode 100644 index 000000000..e0f104fa2 --- /dev/null +++ b/schema/job/theory/ml/linear/predict.json @@ -0,0 +1,20 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "linear methods schema", + "allOf": [ + { + "$ref": "file:../linear.json" + }, + { + "properties": { + "precision": { + "$ref": "file:predict/precision.json" + }, + "data": { + "description": "object with parameters for a pre-trained method", + "$ref": "file:predict/data.json" + } + } + } + ] +} diff --git a/schema/job/theory/ml/linear/predict_parameters.json b/schema/job/theory/ml/linear/predict/data.json similarity index 94% rename from schema/job/theory/ml/linear/predict_parameters.json rename to schema/job/theory/ml/linear/predict/data.json index 3fd188f36..2e904d150 100644 --- a/schema/job/theory/ml/linear/predict_parameters.json +++ b/schema/job/theory/ml/linear/predict/data.json @@ -25,8 +25,8 @@ "description": "intercept corresponding to the fit for each target in property vector" } }, - "inputData": { - "$ref": "file:input_data.json" + "dataFrame": { + "$ref": "file:data_frame.json" } }, "required": [ diff --git a/schema/job/theory/ml/linear/input_data.json b/schema/job/theory/ml/linear/predict/data/data_frame.json similarity index 100% rename from schema/job/theory/ml/linear/input_data.json rename to schema/job/theory/ml/linear/predict/data/data_frame.json diff --git a/schema/job/theory/ml/linear/precision.json b/schema/job/theory/ml/linear/predict/precision.json similarity index 100% rename from schema/job/theory/ml/linear/precision.json rename to schema/job/theory/ml/linear/predict/precision.json diff --git a/schema/job/theory/ml/parameters.json b/schema/job/theory/ml/parameters.json deleted file mode 100644 index bb915377c..000000000 --- a/schema/job/theory/ml/parameters.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "parameters schema for ml tasks", - "oneOf": [ - { - "description": "ml input with saved linear method parameters. Example method: regression", - "$ref": "file:linear/predict_parameters.json" - }, - { - "description": "ml input from workflow scope", - "$ref": "file:../../model/method/workflow/unit/_input.json" - }, - { - "description": "fit parameters for linear methods. Example method: regression", - "$ref": "file:linear/fit_parameters.json" - } - ] -} diff --git a/schema/job/theory/ml/predict.json b/schema/job/theory/ml/predict.json new file mode 100644 index 000000000..a347a50b6 --- /dev/null +++ b/schema/job/theory/ml/predict.json @@ -0,0 +1,9 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "fit schema", + "oneOf": [ + { + "$ref": "file:linear/predict.json" + } + ] +} From 00e8f4b574db86b6e411aa5323644c0b78fcadb7 Mon Sep 17 00:00:00 2001 From: Phani Date: Fri, 17 Mar 2017 23:11:31 -0700 Subject: [PATCH 26/63] feature/SOF-2075 modified ML examples to match current schema --- .../linear/workflow/fit_predict_band_gap.json | 13 ++++------- example/job/theory/ml/_methods.json | 3 +++ example/job/theory/ml/fit.json | 4 ++++ example/job/theory/ml/input.json | 13 ++++++++++- example/job/theory/ml/linear.json | 4 ++++ .../{fit_parameters.json => arguments.json} | 0 example/job/theory/ml/linear/fit.json | 5 ++++ example/job/theory/ml/linear/input.json | 19 --------------- example/job/theory/ml/linear/predict.json | 10 ++++++++ .../data.json} | 4 ++-- .../data/data_frame.json} | 0 .../ml/linear/{ => predict}/precision.json | 0 example/job/theory/ml/parameters.json | 3 --- example/job/theory/ml/predict.json | 4 ++++ schema/job/theory/ml/input.json | 3 +-- schema/job/theory/ml/linear/fit.json | 14 ++++++----- schema/job/theory/ml/linear/predict.json | 23 +++++++++---------- schema/job/theory/ml/linear/predict/data.json | 3 ++- .../ml/linear/predict/data/data_frame.json | 2 +- schema/job/theory/ml/predict.json | 2 +- 20 files changed, 72 insertions(+), 57 deletions(-) create mode 100644 example/job/theory/ml/_methods.json create mode 100644 example/job/theory/ml/fit.json create mode 100644 example/job/theory/ml/linear.json rename example/job/theory/ml/linear/{fit_parameters.json => arguments.json} (100%) create mode 100644 example/job/theory/ml/linear/fit.json delete mode 100644 example/job/theory/ml/linear/input.json create mode 100644 example/job/theory/ml/linear/predict.json rename example/job/theory/ml/linear/{predict_parameters.json => predict/data.json} (81%) rename example/job/theory/ml/linear/{input_data.json => predict/data/data_frame.json} (100%) rename example/job/theory/ml/linear/{ => predict}/precision.json (100%) delete mode 100644 example/job/theory/ml/parameters.json create mode 100644 example/job/theory/ml/predict.json diff --git a/example/job/software/ml/linear/workflow/fit_predict_band_gap.json b/example/job/software/ml/linear/workflow/fit_predict_band_gap.json index 7498280e6..f5af3d96a 100644 --- a/example/job/software/ml/linear/workflow/fit_predict_band_gap.json +++ b/example/job/software/ml/linear/workflow/fit_predict_band_gap.json @@ -31,11 +31,10 @@ "preProcessors": [], "input": [ { - "task": "fit", - "method": { + "fit": { "type": "linear", "subtype": "least_squares", - "parameters": { + "arguments": { "sampleWeight": true, "trainDataSize": 0.75 } @@ -76,8 +75,7 @@ "preProcessors": [], "input": [ { - "task": "predict", - "method": { + "predict": { "scope": "1", "name": "method_parameters" }, @@ -86,10 +84,7 @@ ], "targetProperties": [ "band_gaps" - ], - "parameters": { - - } + ] } ] }, diff --git a/example/job/theory/ml/_methods.json b/example/job/theory/ml/_methods.json new file mode 100644 index 000000000..9b1f25290 --- /dev/null +++ b/example/job/theory/ml/_methods.json @@ -0,0 +1,3 @@ +{ + "...": "include(linear.json)" +} diff --git a/example/job/theory/ml/fit.json b/example/job/theory/ml/fit.json new file mode 100644 index 000000000..dd74dd357 --- /dev/null +++ b/example/job/theory/ml/fit.json @@ -0,0 +1,4 @@ +{ + "...": "include(linear/fit.json)" +} + diff --git a/example/job/theory/ml/input.json b/example/job/theory/ml/input.json index 9cf9bcb42..0df89693b 100644 --- a/example/job/theory/ml/input.json +++ b/example/job/theory/ml/input.json @@ -1,3 +1,14 @@ { - "...": "include(linear/input.json)" + "predict": { + "...": "include(predict.json)" + }, + "targetProperties": [ + "band_gaps" + ], + "materialIds": [ + "3qp8j2CqCgsSa6ZKj", + "NdRNhkKWv4Xj8sxd8", + "AWLTt3qa5x6xRG353", + "cR2uFML56FL6rMf2v" + ] } diff --git a/example/job/theory/ml/linear.json b/example/job/theory/ml/linear.json new file mode 100644 index 000000000..eba7910c2 --- /dev/null +++ b/example/job/theory/ml/linear.json @@ -0,0 +1,4 @@ +{ + "type": "linear", + "subtype": "least_squares" +} diff --git a/example/job/theory/ml/linear/fit_parameters.json b/example/job/theory/ml/linear/arguments.json similarity index 100% rename from example/job/theory/ml/linear/fit_parameters.json rename to example/job/theory/ml/linear/arguments.json diff --git a/example/job/theory/ml/linear/fit.json b/example/job/theory/ml/linear/fit.json new file mode 100644 index 000000000..488379f21 --- /dev/null +++ b/example/job/theory/ml/linear/fit.json @@ -0,0 +1,5 @@ +{ + "type": "linear", + "subtype": "least_squares", + "arguments": "include(arguments.json)" +} diff --git a/example/job/theory/ml/linear/input.json b/example/job/theory/ml/linear/input.json deleted file mode 100644 index 82e056bdf..000000000 --- a/example/job/theory/ml/linear/input.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "task": "predict", - "method": { - "type": "linear", - "subtype": "least_squares" - }, - "targetProperties": [ - "band_gaps" - ], - "materialIds": [ - "3qp8j2CqCgsSa6ZKj", - "NdRNhkKWv4Xj8sxd8", - "AWLTt3qa5x6xRG353", - "cR2uFML56FL6rMf2v" - ], - "parameters": { - "...": "include(../parameters.json)" - } -} diff --git a/example/job/theory/ml/linear/predict.json b/example/job/theory/ml/linear/predict.json new file mode 100644 index 000000000..2269835aa --- /dev/null +++ b/example/job/theory/ml/linear/predict.json @@ -0,0 +1,10 @@ +{ + "precision": { + "...": "include(predict/precision.json)" + }, + "data": { + "...": "include(predict/data.json)" + }, + "type": "linear", + "subtype": "least_squares" +} diff --git a/example/job/theory/ml/linear/predict_parameters.json b/example/job/theory/ml/linear/predict/data.json similarity index 81% rename from example/job/theory/ml/linear/predict_parameters.json rename to example/job/theory/ml/linear/predict/data.json index b37482525..79c1da97a 100644 --- a/example/job/theory/ml/linear/predict_parameters.json +++ b/example/job/theory/ml/linear/predict/data.json @@ -16,7 +16,7 @@ 0.5, 0.5 ], - "inputData": { - "...": "include(input_data.json)" + "dataFrame": { + "...": "include(data/data_frame.json)" } } diff --git a/example/job/theory/ml/linear/input_data.json b/example/job/theory/ml/linear/predict/data/data_frame.json similarity index 100% rename from example/job/theory/ml/linear/input_data.json rename to example/job/theory/ml/linear/predict/data/data_frame.json diff --git a/example/job/theory/ml/linear/precision.json b/example/job/theory/ml/linear/predict/precision.json similarity index 100% rename from example/job/theory/ml/linear/precision.json rename to example/job/theory/ml/linear/predict/precision.json diff --git a/example/job/theory/ml/parameters.json b/example/job/theory/ml/parameters.json deleted file mode 100644 index 3a03a6d58..000000000 --- a/example/job/theory/ml/parameters.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "...": "include(linear/predict_parameters.json)" -} diff --git a/example/job/theory/ml/predict.json b/example/job/theory/ml/predict.json new file mode 100644 index 000000000..52f701569 --- /dev/null +++ b/example/job/theory/ml/predict.json @@ -0,0 +1,4 @@ +{ + "...": "include(linear/predict.json)" +} + diff --git a/schema/job/theory/ml/input.json b/schema/job/theory/ml/input.json index 622ac973d..71e973029 100644 --- a/schema/job/theory/ml/input.json +++ b/schema/job/theory/ml/input.json @@ -1,6 +1,6 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Linear methods input schema", + "title": "ML methods input schema", "type": "object", "properties": { "predict": { @@ -32,7 +32,6 @@ } }, "required": [ - "task", "materialIds", "targetProperties" ] diff --git a/schema/job/theory/ml/linear/fit.json b/schema/job/theory/ml/linear/fit.json index f060eb6cd..b65cbd32f 100644 --- a/schema/job/theory/ml/linear/fit.json +++ b/schema/job/theory/ml/linear/fit.json @@ -1,14 +1,16 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "List of methods", + "title": "linear methods fit schema", + "properties": { + "arguments": { + "description": "additional arguments for fit method", + "$ref": "file:arguments.json" + } + }, "allOf": [ { - "description": "one of the pre-trained ml methods", + "description": "linear methods schema", "$ref": "file:../linear.json" - }, - { - "description": "method read from workflow scope", - "$ref": "file:arguments.json" } ] } diff --git a/schema/job/theory/ml/linear/predict.json b/schema/job/theory/ml/linear/predict.json index e0f104fa2..948dc01d5 100644 --- a/schema/job/theory/ml/linear/predict.json +++ b/schema/job/theory/ml/linear/predict.json @@ -1,20 +1,19 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "linear methods schema", + "title": "linear methods predict schema", + "properties": { + "precision": { + "$ref": "file:predict/precision.json" + }, + "data": { + "description": "object with parameters for a pre-trained method", + "$ref": "file:predict/data.json" + } + }, "allOf": [ { + "description": "linear methods schema", "$ref": "file:../linear.json" - }, - { - "properties": { - "precision": { - "$ref": "file:predict/precision.json" - }, - "data": { - "description": "object with parameters for a pre-trained method", - "$ref": "file:predict/data.json" - } - } } ] } diff --git a/schema/job/theory/ml/linear/predict/data.json b/schema/job/theory/ml/linear/predict/data.json index 2e904d150..4ed8b1d31 100644 --- a/schema/job/theory/ml/linear/predict/data.json +++ b/schema/job/theory/ml/linear/predict/data.json @@ -26,7 +26,8 @@ } }, "dataFrame": { - "$ref": "file:data_frame.json" + "description": "materials data used to train/fit ml method", + "$ref": "file:data/data_frame.json" } }, "required": [ diff --git a/schema/job/theory/ml/linear/predict/data/data_frame.json b/schema/job/theory/ml/linear/predict/data/data_frame.json index cc2e5380e..fbac62461 100644 --- a/schema/job/theory/ml/linear/predict/data/data_frame.json +++ b/schema/job/theory/ml/linear/predict/data/data_frame.json @@ -1,6 +1,6 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "description": "Input data used for ML method", + "description": "Materials data used train/fit ml method", "title": "input data schema", "type": "object" } diff --git a/schema/job/theory/ml/predict.json b/schema/job/theory/ml/predict.json index a347a50b6..1a2d70e22 100644 --- a/schema/job/theory/ml/predict.json +++ b/schema/job/theory/ml/predict.json @@ -1,6 +1,6 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "fit schema", + "title": "predict schema", "oneOf": [ { "$ref": "file:linear/predict.json" From fb500b04f9aeb15d469682c46dc179b6e64a60f2 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Sun, 19 Mar 2017 12:00:29 -0700 Subject: [PATCH 27/63] Added exabyteId and changed result name to predict --- .../software/ml/linear/workflow/fit_predict_band_gap.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/example/job/software/ml/linear/workflow/fit_predict_band_gap.json b/example/job/software/ml/linear/workflow/fit_predict_band_gap.json index f5af3d96a..ee3b537e2 100644 --- a/example/job/software/ml/linear/workflow/fit_predict_band_gap.json +++ b/example/job/software/ml/linear/workflow/fit_predict_band_gap.json @@ -46,7 +46,7 @@ "elemental_composition", "density" ], - "materialIds": [ + "exabyteIds": [ "3qp8j2CqCgsSa6ZKj", "NdRNhkKWv4Xj8sxd8", "AWLTt3qa5x6xRG353", @@ -57,7 +57,7 @@ }, "results": [ { - "name": "method_parameters" + "name": "predict" } ] }, @@ -77,9 +77,9 @@ { "predict": { "scope": "1", - "name": "method_parameters" + "name": "predict" }, - "materialIds": [ + "exabyteIds": [ "3qp8j2CqCgsSa6ZKj" ], "targetProperties": [ From 32d6347470c55dca409202284c24ea1f590cd02d Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Sun, 19 Mar 2017 12:00:50 -0700 Subject: [PATCH 28/63] Update input.json --- example/job/theory/ml/input.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/job/theory/ml/input.json b/example/job/theory/ml/input.json index 0df89693b..8f5824bf1 100644 --- a/example/job/theory/ml/input.json +++ b/example/job/theory/ml/input.json @@ -5,7 +5,7 @@ "targetProperties": [ "band_gaps" ], - "materialIds": [ + "exabyteIds": [ "3qp8j2CqCgsSa6ZKj", "NdRNhkKWv4Xj8sxd8", "AWLTt3qa5x6xRG353", From 49465f33db34f4f03641a2e047acd8df1f133b8e Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Sun, 19 Mar 2017 12:01:20 -0700 Subject: [PATCH 29/63] Update input.json --- schema/job/theory/ml/input.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schema/job/theory/ml/input.json b/schema/job/theory/ml/input.json index 71e973029..0ca9cca33 100644 --- a/schema/job/theory/ml/input.json +++ b/schema/job/theory/ml/input.json @@ -26,7 +26,7 @@ "description": "material features used for model fitting", "type": "array" }, - "materialIds": { + "exabyteIds": { "description": "List of material ids corresponding to materials used for model fitting or property prediction", "type": "array" } From 6530e112b8b823f26513510c472be0885ff51293 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Sun, 19 Mar 2017 12:02:56 -0700 Subject: [PATCH 30/63] Update input.json --- schema/job/theory/ml/input.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schema/job/theory/ml/input.json b/schema/job/theory/ml/input.json index 0ca9cca33..566cb3d87 100644 --- a/schema/job/theory/ml/input.json +++ b/schema/job/theory/ml/input.json @@ -32,7 +32,7 @@ } }, "required": [ - "materialIds", + "exabyteIds", "targetProperties" ] } From 307f9f7e8ed802c5f1bf048be2fc56c2ec8950e0 Mon Sep 17 00:00:00 2001 From: Phani Date: Wed, 22 Mar 2017 12:16:44 -0700 Subject: [PATCH 31/63] modified json schema to adjust inouts to predict unit --- .../ml/linear/workflow/predict_band_gap.json | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 example/job/software/ml/linear/workflow/predict_band_gap.json diff --git a/example/job/software/ml/linear/workflow/predict_band_gap.json b/example/job/software/ml/linear/workflow/predict_band_gap.json new file mode 100644 index 000000000..f592eb1fb --- /dev/null +++ b/example/job/software/ml/linear/workflow/predict_band_gap.json @@ -0,0 +1,112 @@ +{ + "_id": "ML bandgap prediction", + "title": "SiGe alloy bandgap prediction", + "titleSlug": "Template for ML POC SiGe alloy bandgap prediction", + "compute": { + "ppn": 1, + "queue": "OR", + "timeLimit": "1:00:00", + "notify": "n", + "nodes": 1, + "arguments": {} + }, + "model": { + "method": { + "workflow": { + "name": "sige alloy bandgap prediciton using least squares regression", + "app": "machine_learning", + "units": [ + { + "flowchartId": "1", + "type": "execution", + "name": "predict_property", + "head": true, + "status": "idle", + "execution": { + "app": { + "name": "ml", + "exec": "rupy", + "version": "0.1.0" + }, + "preProcessors": [], + "input": [ + { + "predict": { + "data": { + "properties": [ + "band_gaps" + ], + "coefficients": [ + [ + -3.339e-01, + 2.555e-01 + ], + [ + 2.555e-01, + -3.339e-01 + ] + ], + "intercept": [ + 0.5, + 0.5 + ], + "dataFrame": { + "c8zG3XcnnTybfP3QQ": { + "elemental_composition": { + "Ge": 0.3125, + "Si": 0.6875 + } + }, + "wWK2XCyivQrG8j34Z": { + "elemental_composition": { + "Ge": 0.1875, + "Si": 0.8125 + } + } + } + }, + "type": "linear", + "subtype": "least_squares" + }, + "exabyteIds": [ + "F7fWkiG7v2Wm3ughK" + ], + "targetProperties": [ + "band_gaps" + ] + } + ] + }, + "results": [ + { + "name": "band_gaps" + } + ] + } + ] + }, + "data": {} + } + }, + "_project": { + "_id": "56c569d7fe45004bec30b5e7", + "name": "Project 1", + "owner": { + "_id": "sdkucJLKbsaa2ajksh", + "name": "demo", + "type": 10 + }, + "slug": "project-1", + "goldName": "exabyte-project-1" + }, + "version": "0.1.0", + "owner": { + "_id": "paxJukXpDBiSRjfRZ", + "name": "demo", + "type": 10 + }, + "creator": { + "username": "demo", + "_id": "paxJukXpDBiSRjfRZ" + } +} From 2af335c89ed8fc1f9cec73ed9339da41650304dd Mon Sep 17 00:00:00 2001 From: Phani Date: Wed, 22 Mar 2017 12:16:56 -0700 Subject: [PATCH 32/63] modified json schema to adjust inouts to predict unit --- example/job/theory/ml/linear/predict/data.json | 4 +++- .../ml/linear/predict/data/data_frame.json | 16 ++++++++++------ schema/job/theory/ml/linear/predict/data.json | 12 ++++++++---- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/example/job/theory/ml/linear/predict/data.json b/example/job/theory/ml/linear/predict/data.json index 79c1da97a..2d5a1ff8f 100644 --- a/example/job/theory/ml/linear/predict/data.json +++ b/example/job/theory/ml/linear/predict/data.json @@ -1,5 +1,7 @@ { - "property": "band_gaps", + "properties": [ + "band_gaps" + ], "coefficients": [ [ -3.339e-01, diff --git a/example/job/theory/ml/linear/predict/data/data_frame.json b/example/job/theory/ml/linear/predict/data/data_frame.json index 9cbc701f3..2c5c82d5f 100644 --- a/example/job/theory/ml/linear/predict/data/data_frame.json +++ b/example/job/theory/ml/linear/predict/data/data_frame.json @@ -1,12 +1,16 @@ { "c8zG3XcnnTybfP3QQ": { - "Ge": 0.3125, - "Si": 0.6875, - "lattice_volume": 327.1127749111 + "density": 2.21, + "elemental_composition": { + "Ge": 0.3125, + "Si": 0.6875 + } }, "wWK2XCyivQrG8j34Z": { - "Ge": 0.1875, - "Si": 0.8125, - "lattice_volume": 327.1127749111 + "density": 2.34, + "elemental_composition": { + "Ge": 0.1875, + "Si": 0.8125 + } } } diff --git a/schema/job/theory/ml/linear/predict/data.json b/schema/job/theory/ml/linear/predict/data.json index 4ed8b1d31..09b090be1 100644 --- a/schema/job/theory/ml/linear/predict/data.json +++ b/schema/job/theory/ml/linear/predict/data.json @@ -2,9 +2,13 @@ "$schema": "http://json-schema.org/draft-04/schema#", "title": "regression parameters schema", "properties": { - "property": { - "type": "string", - "description": "name of the predicted or optimized characteristic" + "properties": { + "type": "array", + "description": "Array of target properties", + "items": { + "type": "string", + "description": "name of the target property" + } }, "coefficients": { "type": "array", @@ -31,7 +35,7 @@ } }, "required": [ - "property", + "properties", "coefficients", "intercept" ] From 6c9d006a8ddfa0281c43245d6bd8172920a39d18 Mon Sep 17 00:00:00 2001 From: Phani Date: Wed, 22 Mar 2017 23:37:45 -0700 Subject: [PATCH 33/63] modified ML input JSON schema --- .../linear/workflow/fit_predict_band_gap.json | 3 - .../ml/linear/workflow/predict_band_gap.json | 112 ------------------ example/job/theory/ml/input.json | 8 +- schema/job/theory/ml/input.json | 3 +- 4 files changed, 2 insertions(+), 124 deletions(-) delete mode 100644 example/job/software/ml/linear/workflow/predict_band_gap.json diff --git a/example/job/software/ml/linear/workflow/fit_predict_band_gap.json b/example/job/software/ml/linear/workflow/fit_predict_band_gap.json index ee3b537e2..ba001749e 100644 --- a/example/job/software/ml/linear/workflow/fit_predict_band_gap.json +++ b/example/job/software/ml/linear/workflow/fit_predict_band_gap.json @@ -81,9 +81,6 @@ }, "exabyteIds": [ "3qp8j2CqCgsSa6ZKj" - ], - "targetProperties": [ - "band_gaps" ] } ] diff --git a/example/job/software/ml/linear/workflow/predict_band_gap.json b/example/job/software/ml/linear/workflow/predict_band_gap.json deleted file mode 100644 index f592eb1fb..000000000 --- a/example/job/software/ml/linear/workflow/predict_band_gap.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "_id": "ML bandgap prediction", - "title": "SiGe alloy bandgap prediction", - "titleSlug": "Template for ML POC SiGe alloy bandgap prediction", - "compute": { - "ppn": 1, - "queue": "OR", - "timeLimit": "1:00:00", - "notify": "n", - "nodes": 1, - "arguments": {} - }, - "model": { - "method": { - "workflow": { - "name": "sige alloy bandgap prediciton using least squares regression", - "app": "machine_learning", - "units": [ - { - "flowchartId": "1", - "type": "execution", - "name": "predict_property", - "head": true, - "status": "idle", - "execution": { - "app": { - "name": "ml", - "exec": "rupy", - "version": "0.1.0" - }, - "preProcessors": [], - "input": [ - { - "predict": { - "data": { - "properties": [ - "band_gaps" - ], - "coefficients": [ - [ - -3.339e-01, - 2.555e-01 - ], - [ - 2.555e-01, - -3.339e-01 - ] - ], - "intercept": [ - 0.5, - 0.5 - ], - "dataFrame": { - "c8zG3XcnnTybfP3QQ": { - "elemental_composition": { - "Ge": 0.3125, - "Si": 0.6875 - } - }, - "wWK2XCyivQrG8j34Z": { - "elemental_composition": { - "Ge": 0.1875, - "Si": 0.8125 - } - } - } - }, - "type": "linear", - "subtype": "least_squares" - }, - "exabyteIds": [ - "F7fWkiG7v2Wm3ughK" - ], - "targetProperties": [ - "band_gaps" - ] - } - ] - }, - "results": [ - { - "name": "band_gaps" - } - ] - } - ] - }, - "data": {} - } - }, - "_project": { - "_id": "56c569d7fe45004bec30b5e7", - "name": "Project 1", - "owner": { - "_id": "sdkucJLKbsaa2ajksh", - "name": "demo", - "type": 10 - }, - "slug": "project-1", - "goldName": "exabyte-project-1" - }, - "version": "0.1.0", - "owner": { - "_id": "paxJukXpDBiSRjfRZ", - "name": "demo", - "type": 10 - }, - "creator": { - "username": "demo", - "_id": "paxJukXpDBiSRjfRZ" - } -} diff --git a/example/job/theory/ml/input.json b/example/job/theory/ml/input.json index 8f5824bf1..42a566d9b 100644 --- a/example/job/theory/ml/input.json +++ b/example/job/theory/ml/input.json @@ -2,13 +2,7 @@ "predict": { "...": "include(predict.json)" }, - "targetProperties": [ - "band_gaps" - ], "exabyteIds": [ - "3qp8j2CqCgsSa6ZKj", - "NdRNhkKWv4Xj8sxd8", - "AWLTt3qa5x6xRG353", - "cR2uFML56FL6rMf2v" + "3qp8j2CqCgsSa6ZKj" ] } diff --git a/schema/job/theory/ml/input.json b/schema/job/theory/ml/input.json index 566cb3d87..378361461 100644 --- a/schema/job/theory/ml/input.json +++ b/schema/job/theory/ml/input.json @@ -32,7 +32,6 @@ } }, "required": [ - "exabyteIds", - "targetProperties" + "exabyteIds" ] } From 2d591672e469f6b85a843b40be9de396cff2a7a5 Mon Sep 17 00:00:00 2001 From: Mohammad Mohammadi Date: Tue, 4 Apr 2017 12:46:05 +0430 Subject: [PATCH 34/63] added REST API configuration --- schema/job.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/schema/job.json b/schema/job.json index 8de0b702b..519636375 100644 --- a/schema/job.json +++ b/schema/job.json @@ -107,6 +107,24 @@ "_id", "title" ] + }, + "api": { + "description": "REST API configuration", + "type": "object", + "properties": { + "userId": { + "description": "user ID", + "type": "string" + }, + "authToken": { + "description": "authentication token", + "type": "string" + } + }, + "required": [ + "userId", + "authToken" + ] } }, "required": [ From 29ff2418bd2874580e2899db329dec29188ab5e7 Mon Sep 17 00:00:00 2001 From: Mohammad Mohammadi Date: Tue, 4 Apr 2017 18:37:14 +0430 Subject: [PATCH 35/63] added REST API credentials --- example/job.json | 3 +++ example/job/_api.json | 4 ++++ 2 files changed, 7 insertions(+) create mode 100644 example/job/_api.json diff --git a/example/job.json b/example/job.json index 53b53c303..91e0e6439 100644 --- a/example/job.json +++ b/example/job.json @@ -24,5 +24,8 @@ }, "_project": { "...": "include(job/_project.json)" + }, + "api": { + "...": "include(job/_api.json)" } } diff --git a/example/job/_api.json b/example/job/_api.json new file mode 100644 index 000000000..5224a0d3f --- /dev/null +++ b/example/job/_api.json @@ -0,0 +1,4 @@ +{ + "userId": "jnLJpf9vJKYtFoQxc", + "authToken": "BvsTQ3xv-c4laO4Po3PQWsQty4GVwtDL_f2KXv6uFxz" +} From b1563257f65e9bd7962f1b7db81cf01e79b7f0f7 Mon Sep 17 00:00:00 2001 From: Phani Date: Tue, 2 May 2017 16:09:58 -0700 Subject: [PATCH 36/63] added schema for material fingerprint primary descriptors --- example/job.json | 8 +++-- example/job/_material.json | 5 ++- example/job/_project.json | 3 +- example/material/fingerprint.json | 8 +++++ example/material/primary/chemical.json | 23 +++++++++++++ example/material/primary/electronic.json | 15 ++++++++ example/material/primary/physical.json | 29 ++++++++++++++++ example/material/primary/primary.json | 17 ++++++++++ example/material/primary/stoichiometric.json | 10 ++++++ example/material/primary/structural.json | 7 ++++ .../material/structure/lattice_bravais.json | 2 +- example/material/structure/lattice_type.json | 3 ++ schema/job.json | 7 ++-- schema/job/_material.json | 4 +++ schema/material/fingerprint.json | 19 +++++++++++ schema/material/primary/chemical.json | 22 ++++++++++++ schema/material/primary/electronic.json | 18 ++++++++++ schema/material/primary/physical.json | 29 ++++++++++++++++ schema/material/primary/primary.json | 34 +++++++++++++++++++ schema/material/primary/stoichiometric.json | 10 ++++++ schema/material/primary/structural.json | 27 +++++++++++++++ .../material/structure/lattice_bravais.json | 28 +++------------ schema/material/structure/lattice_type.json | 29 ++++++++++++++++ 23 files changed, 325 insertions(+), 32 deletions(-) create mode 100644 example/material/fingerprint.json create mode 100644 example/material/primary/chemical.json create mode 100644 example/material/primary/electronic.json create mode 100644 example/material/primary/physical.json create mode 100644 example/material/primary/primary.json create mode 100644 example/material/primary/stoichiometric.json create mode 100644 example/material/primary/structural.json create mode 100644 example/material/structure/lattice_type.json create mode 100644 schema/material/fingerprint.json create mode 100644 schema/material/primary/chemical.json create mode 100644 schema/material/primary/electronic.json create mode 100644 schema/material/primary/physical.json create mode 100644 schema/material/primary/primary.json create mode 100644 schema/material/primary/stoichiometric.json create mode 100644 schema/material/primary/structural.json create mode 100644 schema/material/structure/lattice_type.json diff --git a/example/job.json b/example/job.json index 53b53c303..6870f32e1 100644 --- a/example/job.json +++ b/example/job.json @@ -1,9 +1,11 @@ { "status": "pre-submission", "mode": "normal", - "_material": { - "...": "include(job/_material.json)" - }, + "_materials": [ + { + "...": "include(job/_material.json)" + } + ], "compute": { "...": "include(job/compute.json)" }, diff --git a/example/job/_material.json b/example/job/_material.json index 39787574b..dacc4978e 100644 --- a/example/job/_material.json +++ b/example/job/_material.json @@ -1,5 +1,8 @@ { "exabyteId": "zQaQ8WLspMbGsiDwG", "_id": "8RnSpTd44PaYGgA7s", - "name": "Silicon FCC" + "name": "Silicon FCC", + "fingerprint": { + "...": "include(../material/fingerprint.json)" + } } diff --git a/example/job/_project.json b/example/job/_project.json index 5361aacc7..31e6ffcbb 100644 --- a/example/job/_project.json +++ b/example/job/_project.json @@ -1,7 +1,8 @@ { "name": "demo", "access": { - "...": "include(../security/access_legacy.json)" + "type": 10, + "level": 10 }, "owner": { "_id": "HtxACY2wX4b2hS8Rv", diff --git a/example/material/fingerprint.json b/example/material/fingerprint.json new file mode 100644 index 000000000..b6cfc6e97 --- /dev/null +++ b/example/material/fingerprint.json @@ -0,0 +1,8 @@ +{ + "primary": { + "...": "include(primary/primary.json)" + }, + "secondary": { + "...": "include(characteristic.json)" + } +} diff --git a/example/material/primary/chemical.json b/example/material/primary/chemical.json new file mode 100644 index 000000000..239ad530a --- /dev/null +++ b/example/material/primary/chemical.json @@ -0,0 +1,23 @@ +{ + "electronAffinity":[ + [ + 1.39 + ] + ], + "ionizationPotential":[ + [ + 8.15 + ] + ], + "coordNumber":[ + [ + 0 + ] + ], + "localEnv":[ + [ + 5 + ] + + ] +} diff --git a/example/material/primary/electronic.json b/example/material/primary/electronic.json new file mode 100644 index 000000000..6ec437765 --- /dev/null +++ b/example/material/primary/electronic.json @@ -0,0 +1,15 @@ +{ + "spin":[ + [ + 0 + ] + ], + "valOrbOcc":[ + [ + 0.5, + 0.5, + 0.0, + 0.0 + ] + ] +} diff --git a/example/material/primary/physical.json b/example/material/primary/physical.json new file mode 100644 index 000000000..fe2be1edb --- /dev/null +++ b/example/material/primary/physical.json @@ -0,0 +1,29 @@ +{ + "elements":[ + "Si" + ], + "oxidationState":[ + [ + 0 + ] + ], + "aradii":[ + [ + 0.110 + ] + ], + "iradii": [ + [ + 0.110 + ] + ], + "group":[ + [ + [ + 3, + 14 + ] + ] + ] + +} diff --git a/example/material/primary/primary.json b/example/material/primary/primary.json new file mode 100644 index 000000000..3c7dca9cb --- /dev/null +++ b/example/material/primary/primary.json @@ -0,0 +1,17 @@ +{ + "stoichiometric":{ + "...": "include(stoichiometric.json)" + }, + "physical": { + "...": "include(physical.json)" + }, + "structural": { + "...": "include(structural.json)" + }, + "electronic": { + "...": "include(electronic.json)" + }, + "chemical": { + "...": "include(chemical.json)" + } +} diff --git a/example/material/primary/stoichiometric.json b/example/material/primary/stoichiometric.json new file mode 100644 index 000000000..7bfbab1b1 --- /dev/null +++ b/example/material/primary/stoichiometric.json @@ -0,0 +1,10 @@ +{ + "pnorm":[ + [ + 1.0, + 1.0, + 1.0 + + ] + ] +} diff --git a/example/material/primary/structural.json b/example/material/primary/structural.json new file mode 100644 index 000000000..676ccae46 --- /dev/null +++ b/example/material/primary/structural.json @@ -0,0 +1,7 @@ +{ + "type": "CUB", + "representation": "0", + "equilibrium": "0", + "matType": "0", + "vatom": 0.15 +} diff --git a/example/material/structure/lattice_bravais.json b/example/material/structure/lattice_bravais.json index 1ec9365c1..404bc6c55 100644 --- a/example/material/structure/lattice_bravais.json +++ b/example/material/structure/lattice_bravais.json @@ -1,6 +1,6 @@ { + "...": "include(lattice_type.json)", "name": "lattice_bravais", - "type": "CUB", "a": 5.14, "b": 5.14, "c": 5.14, diff --git a/example/material/structure/lattice_type.json b/example/material/structure/lattice_type.json new file mode 100644 index 000000000..36b54d288 --- /dev/null +++ b/example/material/structure/lattice_type.json @@ -0,0 +1,3 @@ +{ + "type": "CUB" +} diff --git a/schema/job.json b/schema/job.json index 8de0b702b..f9641f5b8 100644 --- a/schema/job.json +++ b/schema/job.json @@ -73,9 +73,12 @@ "description": "Subset of the full information about the project that this job belongs to. Included for quick access in search.", "$ref": "file:job/_project.json" }, - "_material": { + "_materials": { "description": "Subset of the full information about the materials used inside this job.", - "$ref": "file:job/_material.json" + "type": "array", + "items":{ + "$ref": "file:job/_material.json" + } }, "version": { "description": "Job's schema version. Used to distinct between different schemas.", diff --git a/schema/job/_material.json b/schema/job/_material.json index 2bab66f89..ee21812cb 100644 --- a/schema/job/_material.json +++ b/schema/job/_material.json @@ -14,6 +14,10 @@ "exabyteId": { "description": "Corresponding Materials Bank identity", "type": "string" + }, + "fingerprint": { + "description": "Material fingerprint with primary/secondary and tertiary descriptors", + "$ref": "../material/fingerprint.json" } }, "required": [ diff --git a/schema/material/fingerprint.json b/schema/material/fingerprint.json new file mode 100644 index 000000000..f5d31564c --- /dev/null +++ b/schema/material/fingerprint.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "material fingerprint schema", + "description": "collection of descriptors with information about materials structure, composition and characteristics required for performing advanced ML tasks", + "properties": { + "primary": { + "description": "descriptors related to structure, stoichiometry and physical reference data of materials. Calculated on-the-fly ", + "$ref": "file:primary/primary.json" + }, + "secondary": { + "description": "descriptors related to characteristics from simulations and/or experiments", + "$ref": "file:characteristic.json" + } + }, + "required": [ + "primary", + "secondary" + ] +} diff --git a/schema/material/primary/chemical.json b/schema/material/primary/chemical.json new file mode 100644 index 000000000..f0abfd855 --- /dev/null +++ b/schema/material/primary/chemical.json @@ -0,0 +1,22 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "chemical descriptors schema", + "properties": { + "electronAffinity": { + "description": "electron affinity values of all elements. EA depends on oxidation state. Units: eV", + "$ref": "file:../../primitive/1d_data_series.json" + }, + "ionizationPotential": { + "description": "ionization potentials of all elements. IP depends on oxidation state. Units: eV", + "$ref": "file:../../primitive/1d_data_series.json" + }, + "coordNumber": { + "description": "coordination numbers of all elements", + "$ref": "file:../../primitive/1d_data_series.json" + }, + "localEnv": { + "description": "Represents the atom type each element is bonded to. Allowed values min 0 and maximum is 5. Value corresponds to the index of elements in this list [H, O, S, F, Cl, X]. Example: 0 means an element is bonded to H and 5 means an element is either non-bonded or bonded to any atom other than the atoms in the list", + "$ref": "file:../../primitive/1d_data_series.json" + } + } +} diff --git a/schema/material/primary/electronic.json b/schema/material/primary/electronic.json new file mode 100644 index 000000000..db284ff1c --- /dev/null +++ b/schema/material/primary/electronic.json @@ -0,0 +1,18 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "electronic descriptors schema", + "properties": { + "spin": { + "description": "Spin state of each element. Allowed Values 0 or 1. 0 means low spin state and 1 means high spin state. Spin state depends on oxidation state and electronic configuration", + "$ref": "file:../../primitive/1d_data_series.json" + }, + "valOrbOcc":{ + "description":"valence orbital occupation - contribution from s, p, d, and f to valence - depends on electronic configuration. Ref:https://www.nature.com/articles/npjcompumats201628#s1", + "type": "array", + "items":{ + "description": "array of s,p,d,f contributions for individual element ", + "ref": "file:../../primitive/1d_data_series.json" + } + } + } +} diff --git a/schema/material/primary/physical.json b/schema/material/primary/physical.json new file mode 100644 index 000000000..3b71a3b02 --- /dev/null +++ b/schema/material/primary/physical.json @@ -0,0 +1,29 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "physical descriptors schema", + "properties": { + "elements": { + "description": " Element symbols of unique elements in the material", + "ref": "file:../../primitive/1d_data_series.json" + }, + "oxidationState": { + "description": "Array with average oxidation state of unique element type", + "$ref": "file:../../primitive/1d_data_series.json" + }, + "aradii": { + "description": "atomic radii of all elements in nm", + "$ref": "file:../../primitive/1d_data_series.json" + }, + "iradii": { + "description": "ionic radii of all elements. Ionic radii depend on oxidation states of elements", + "$ref": "file:../../primitive/1d_data_series.json" + }, + "group": { + "description": "Position in the periodic table. Array of arrays with period and group in the periodic table for all elements", + "type":"array", + "items":{ + "$ref": "file:../../primitive/1d_data_series.json" + } + } + } +} diff --git a/schema/material/primary/primary.json b/schema/material/primary/primary.json new file mode 100644 index 000000000..eefc59f16 --- /dev/null +++ b/schema/material/primary/primary.json @@ -0,0 +1,34 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "primary descriptors schema", + "description": "collection of stoichiometric, structural, physical, electronic and chemical", + "properties": { + "stoichiometric": { + "description": "composition descriptors", + "$ref": "file:stoichiometric.json" + }, + "structural": { + "description": "structural descriptors", + "$ref": "file:structural.json" + }, + "physical": { + "description": "physical descriptors", + "$ref": "file:physical.json" + }, + "electronic": { + "description": "electronic descriptors", + "$ref": "file:electronic.json" + }, + "chemical": { + "description": "chemical descriptors", + "$ref": "file:chemical.json" + } + }, + "required": [ + "stoichiometric", + "structural", + "physical", + "electronic", + "chemical" + ] +} diff --git a/schema/material/primary/stoichiometric.json b/schema/material/primary/stoichiometric.json new file mode 100644 index 000000000..b84e54633 --- /dev/null +++ b/schema/material/primary/stoichiometric.json @@ -0,0 +1,10 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "stoichiometric descriptors schema", + "properties": { + "pnorm": { + "description": "array of values calculated using L-p norm upto p-dimensions", + "$ref": "file:../../primitive/1d_data_series.json" + } + } +} diff --git a/schema/material/primary/structural.json b/schema/material/primary/structural.json new file mode 100644 index 000000000..6d77b4dcf --- /dev/null +++ b/schema/material/primary/structural.json @@ -0,0 +1,27 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "structural descriptors schema", + "allOf": [ + { + "$ref": "file:../structure/lattice_type.json" + } + ], + "properties": { + "representation": { + "description": "structure representation. Allowed values 0,1 or 2 Eg: 0 means primitive, 1 means conventional and 2 means a supercell", + "type": "string" + }, + "equilibrium": { + "description": "Identifies a equilibrium structure. Values: 0 or 1 Eg: 0 means equilibrated and 1 means non-equilibrium structure", + "type": "string" + }, + "matType": { + "description": "Material type. Allowed values 0,1, 2 or 3 - crystal/amorphous/polymer/molecule/. Eg: 0 means crystalline and 3 means a molecule", + "type": "string" + }, + "vatom":{ + "description": "Averaged volume per atom. Units: 1/Ang**3", + "type": "number" + } + } +} diff --git a/schema/material/structure/lattice_bravais.json b/schema/material/structure/lattice_bravais.json index bc08ddc1b..630aea36f 100644 --- a/schema/material/structure/lattice_bravais.json +++ b/schema/material/structure/lattice_bravais.json @@ -4,29 +4,12 @@ "allOf": [ { "$ref": "file:../../primitive/3d_lattice.json" + }, + { + "$ref": "file:lattice_type.json" } ], "properties": { - "type": { - "description": "Bravais lattice type in short notation", - "type": "string", - "enum": [ - "CUB", - "BCC", - "FCC", - "TET", - "MCL", - "ORC", - "ORCC", - "ORCF", - "ORCI", - "HEX", - "BCT", - "TRI", - "MCLC", - "RHL" - ] - }, "units": { "type": "object", "properties": { @@ -46,8 +29,5 @@ } } } - }, - "required": [ - "type" - ] + } } diff --git a/schema/material/structure/lattice_type.json b/schema/material/structure/lattice_type.json new file mode 100644 index 000000000..55e555779 --- /dev/null +++ b/schema/material/structure/lattice_type.json @@ -0,0 +1,29 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "lattice type schema", + "properties": { + "type": { + "description": "Bravais lattice type in short notation", + "type": "string", + "enum": [ + "CUB", + "BCC", + "FCC", + "TET", + "MCL", + "ORC", + "ORCC", + "ORCF", + "ORCI", + "HEX", + "BCT", + "TRI", + "MCLC", + "RHL" + ] + } + }, + "required": [ + "type" + ] +} From 4859dd79acdcaf4e36255c295b009338787a8539 Mon Sep 17 00:00:00 2001 From: Phani Date: Wed, 3 May 2017 10:11:18 -0700 Subject: [PATCH 37/63] moved physical descriptors to elements schema --- example/material/elements/elements.json | 2609 ++++++++++++++++++ example/material/primary/chemical.json | 14 +- example/material/primary/electronic.json | 4 +- example/material/primary/physical.json | 29 - example/material/primary/primary.json | 3 - example/material/primary/stoichiometric.json | 13 +- example/material/primary/structural.json | 10 +- example/material/structure/lattice.json | 2 +- example/material/structure/lattice_type.json | 2 +- schema/material/elements/_element.json | 84 + schema/material/elements/elements.json | 10 + schema/material/primary/physical.json | 29 - 12 files changed, 2719 insertions(+), 90 deletions(-) create mode 100644 example/material/elements/elements.json delete mode 100644 example/material/primary/physical.json create mode 100644 schema/material/elements/_element.json create mode 100644 schema/material/elements/elements.json delete mode 100644 schema/material/primary/physical.json diff --git a/example/material/elements/elements.json b/example/material/elements/elements.json new file mode 100644 index 000000000..a1a5dd1ea --- /dev/null +++ b/example/material/elements/elements.json @@ -0,0 +1,2609 @@ +{ + "Hydrogen": { + "symbol": "H", + "atomicNumber": 1, + "atomicWeight": 1.00794, + "density": "0.0708 (@ -253°C)", + "meltingPoint": 14.01, + "boilingPoint": 20.28, + "atomicRadius": 79, + "covalentRadius": 32, + "ionicRadius": "", + "atomicVolume": 14.1, + "specificHeat": "14.267 (H-H)", + "fusionHeat": "0.117 (H-H)", + "evaporationHeat": "0.904 (H-H)", + "thermalConductivity": 0.1815, + "paulingNegativity": 2.2, + "firstIonizationPotential": 1311.3, + "oxidationStates": "1, -1", + "electronicConfiguration": "1s¹", + "latticeStructure": "HEX", + "latticeConstant": 3.75 + }, + "Helium": { + "symbol": "He", + "atomicNumber": 2, + "atomicWeight": 4.002602, + "density": "0.147 (@ -270°C)", + "meltingPoint": 0.95, + "boilingPoint": 4.216, + "atomicRadius": 0, + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": 31.8, + "specificHeat": 5.188, + "fusionHeat": "-", + "evaporationHeat": 0.08, + "thermalConductivity": 0.152, + "paulingNegativity": "-", + "firstIonizationPotential": 2361.3, + "oxidationStates": "-", + "electronicConfiguration": "1s²", + "latticeStructure": "HEX", + "latticeConstant": 3.57 + }, + "Lithium": { + "symbol": "Li", + "atomicNumber": 3, + "atomicWeight": 6.941, + "density": 0.534, + "meltingPoint": 553.69, + "boilingPoint": 1118.15, + "atomicRadius": 155, + "covalentRadius": 163, + "ionicRadius": "", + "atomicVolume": 13.1, + "specificHeat": 3.489, + "fusionHeat": 2.89, + "evaporationHeat": 148, + "thermalConductivity": 84.8, + "paulingNegativity": 0.98, + "firstIonizationPotential": 519.9, + "oxidationStates": 1, + "electronicConfiguration": "[He]2s¹", + "latticeStructure": "BCC", + "latticeConstant": 3.49 + }, + "Beryllium": { + "symbol": "Be", + "atomicNumber": 4, + "atomicWeight": 9.01218, + "density": 1.848, + "meltingPoint": 1551, + "boilingPoint": 3243, + "atomicRadius": 112, + "covalentRadius": 90, + "ionicRadius": "", + "atomicVolume": 5, + "specificHeat": 1.824, + "fusionHeat": 12.21, + "evaporationHeat": 309, + "thermalConductivity": 201, + "paulingNegativity": 1.57, + "firstIonizationPotential": 898.8, + "oxidationStates": 2, + "electronicConfiguration": "[He]2s²", + "latticeStructure": "HEX", + "latticeConstant": 2.29 + }, + "Boron": { + "symbol": "B", + "atomicNumber": 5, + "atomicWeight": 10.811, + "density": 2.34, + "meltingPoint": 2573, + "boilingPoint": 3931, + "atomicRadius": 98, + "covalentRadius": 82, + "ionicRadius": "", + "atomicVolume": 4.6, + "specificHeat": 1.025, + "fusionHeat": 23.6, + "evaporationHeat": 504.5, + "thermalConductivity": 27.4, + "paulingNegativity": 2.04, + "firstIonizationPotential": 800.2, + "oxidationStates": 3, + "electronicConfiguration": "[He]2s²2p¹", + "latticeStructure": "TET", + "latticeConstant": 8.73 + }, + "Carbon": { + "symbol": "C", + "atomicNumber": 6, + "atomicWeight": 12.011, + "density": "2.25 (graphite)", + "meltingPoint": 3820, + "boilingPoint": 5100, + "atomicRadius": 91, + "covalentRadius": 77, + "ionicRadius": "", + "atomicVolume": 5.3, + "specificHeat": 0.711, + "fusionHeat": "-", + "evaporationHeat": "-", + "thermalConductivity": 1.59, + "paulingNegativity": 2.55, + "firstIonizationPotential": 1085.7, + "oxidationStates": "4, 2, -4", + "electronicConfiguration": "[He]2s²2p²", + "latticeStructure": "DIA", + "latticeConstant": 3.57 + }, + "Nitrogen": { + "symbol": "N", + "atomicNumber": 7, + "atomicWeight": 14.00674, + "density": "0.808 (@ -195.8°C)", + "meltingPoint": 63.29, + "boilingPoint": 77.4, + "atomicRadius": 92, + "covalentRadius": 75, + "ionicRadius": "", + "atomicVolume": 17.3, + "specificHeat": "1.042 (N-N)", + "fusionHeat": "-", + "evaporationHeat": "-", + "thermalConductivity": 0.026, + "paulingNegativity": 3.04, + "firstIonizationPotential": 1401.5, + "oxidationStates": "5, 4, 3, 2, -3", + "electronicConfiguration": "[He]2s²2p³", + "latticeStructure": "HEX", + "latticeConstant": 4.039 + }, + "Oxygen": { + "symbol": "O", + "atomicNumber": 8, + "atomicWeight": 15.9994, + "density": "1.149 (@ -183°C)", + "meltingPoint": 54.8, + "boilingPoint": 90.19, + "atomicRadius": "-", + "covalentRadius": 73, + "ionicRadius": "", + "atomicVolume": 14, + "specificHeat": "0.916 (O-O)", + "fusionHeat": "-", + "evaporationHeat": "-", + "thermalConductivity": 0.027, + "paulingNegativity": 3.44, + "firstIonizationPotential": 1313.1, + "oxidationStates": "-2, -1", + "electronicConfiguration": "[He]2s²2p", + "latticeStructure": "CUB", + "latticeConstant": 6.83 + }, + "Fluorine": { + "symbol": "F", + "atomicNumber": 9, + "atomicWeight": 18.998403, + "density": "1.108 (@ -189°C)", + "meltingPoint": 53.53, + "boilingPoint": 85.01, + "atomicRadius": "-", + "covalentRadius": 72, + "ionicRadius": "", + "atomicVolume": 17.1, + "specificHeat": "0.824 (F-F)", + "fusionHeat": "0.51 (F-F)", + "evaporationHeat": "6.54 (F-F)", + "thermalConductivity": 0.028, + "paulingNegativity": 3.98, + "firstIonizationPotential": 1680, + "oxidationStates": -1, + "electronicConfiguration": "[He]2s²2p", + "latticeStructure": "MCL", + "latticeConstant": "-" + }, + "Neon": { + "symbol": "Ne", + "atomicNumber": 10, + "atomicWeight": 20.1797, + "density": "1.204 (@ -246°C)", + "meltingPoint": 48, + "boilingPoint": 27.1, + "atomicRadius": "-", + "covalentRadius": 71, + "ionicRadius": "", + "atomicVolume": 16.8, + "specificHeat": 1.029, + "fusionHeat": "-", + "evaporationHeat": 1.74, + "thermalConductivity": "(0.0493)", + "paulingNegativity": 0, + "firstIonizationPotential": 2079.4, + "oxidationStates": "-", + "electronicConfiguration": "[He]2s²2p", + "latticeStructure": "FCC", + "latticeConstant": 4.43 + }, + "Sodium": { + "symbol": "Na", + "atomicNumber": 11, + "atomicWeight": 22.989768, + "density": 0.971, + "meltingPoint": 370.96, + "boilingPoint": 1156.1, + "atomicRadius": 190, + "covalentRadius": 154, + "ionicRadius": "", + "atomicVolume": 23.7, + "specificHeat": 1.222, + "fusionHeat": 2.64, + "evaporationHeat": 97.9, + "thermalConductivity": 142, + "paulingNegativity": 0.93, + "firstIonizationPotential": 495.6, + "oxidationStates": 1, + "electronicConfiguration": "[Ne]3s¹", + "latticeStructure": "BCC", + "latticeConstant": 4.23 + }, + "Magnesium": { + "symbol": "Mg", + "atomicNumber": 12, + "atomicWeight": 24.305, + "density": 1.738, + "meltingPoint": 922, + "boilingPoint": 1363, + "atomicRadius": 160, + "covalentRadius": 136, + "ionicRadius": "", + "atomicVolume": 14, + "specificHeat": 1.025, + "fusionHeat": 9.2, + "evaporationHeat": 131.8, + "thermalConductivity": 156, + "paulingNegativity": 1.31, + "firstIonizationPotential": 737.3, + "oxidationStates": 2, + "electronicConfiguration": "[Ne]3s²", + "latticeStructure": "HEX", + "latticeConstant": 3.21 + }, + "Aluminum": { + "symbol": "Al", + "atomicNumber": 13, + "atomicWeight": 26.981539, + "density": 2.6989, + "meltingPoint": 933.5, + "boilingPoint": 2740, + "atomicRadius": 143, + "covalentRadius": 118, + "ionicRadius": "", + "atomicVolume": 10, + "specificHeat": 0.9, + "fusionHeat": 10.75, + "evaporationHeat": 284.1, + "thermalConductivity": 237, + "paulingNegativity": 1.61, + "firstIonizationPotential": 577.2, + "oxidationStates": 3, + "electronicConfiguration": "[Ne]3s²3p¹", + "latticeStructure": "FCC", + "latticeConstant": 4.05 + }, + "Silicon": { + "symbol": "Si", + "atomicNumber": 14, + "atomicWeight": 28.0855, + "density": 2.33, + "meltingPoint": 1683, + "boilingPoint": 2628, + "atomicRadius": 132, + "covalentRadius": 111, + "ionicRadius": "", + "atomicVolume": 12.1, + "specificHeat": 0.703, + "fusionHeat": 50.6, + "evaporationHeat": 383, + "thermalConductivity": 149, + "paulingNegativity": 1.9, + "firstIonizationPotential": 786, + "oxidationStates": "4, -4", + "electronicConfiguration": "[Ne]3s²3p²", + "latticeStructure": "DIA", + "latticeConstant": 5.43 + }, + "Phosphorus": { + "symbol": "P", + "atomicNumber": 15, + "atomicWeight": 30.973762, + "density": "1.82 (white phosphorus)", + "meltingPoint": 317.3, + "boilingPoint": 553, + "atomicRadius": 128, + "covalentRadius": 106, + "ionicRadius": "", + "atomicVolume": 17, + "specificHeat": 0.757, + "fusionHeat": 2.51, + "evaporationHeat": 49.8, + "thermalConductivity": "(0.236)", + "paulingNegativity": 2.19, + "firstIonizationPotential": 1011.2, + "oxidationStates": "5, 3, -3", + "electronicConfiguration": "[Ne]3s²3p³", + "latticeStructure": "CUB", + "latticeConstant": 7.17 + }, + "Sulfur": { + "symbol": "S", + "atomicNumber": 16, + "atomicWeight": 32.066, + "density": 2.07, + "meltingPoint": 386, + "boilingPoint": 717.824, + "atomicRadius": 127, + "covalentRadius": 102, + "ionicRadius": "", + "atomicVolume": 15.5, + "specificHeat": 0.732, + "fusionHeat": 1.23, + "evaporationHeat": 10.5, + "thermalConductivity": 0.27, + "paulingNegativity": 2.58, + "firstIonizationPotential": 999, + "oxidationStates": "6, 4, 2, -2", + "electronicConfiguration": "[Ne]3s²3p", + "latticeStructure": "ORC", + "latticeConstant": 10.47 + }, + "Chlorine": { + "symbol": "Cl", + "atomicNumber": 17, + "atomicWeight": 35.4527, + "density": "1.56 (@ -33.6°C)", + "meltingPoint": 172.2, + "boilingPoint": 238.6, + "atomicRadius": "-", + "covalentRadius": 99, + "ionicRadius": "", + "atomicVolume": 18.7, + "specificHeat": "0.477 (Cl-Cl)", + "fusionHeat": "6.41 (Cl-Cl)", + "evaporationHeat": "20.41 (Cl-Cl)", + "thermalConductivity": 0.009, + "paulingNegativity": 3.16, + "firstIonizationPotential": 1254.9, + "oxidationStates": "7, 5, 3, 1, -1", + "electronicConfiguration": "[Ne]3s²3p", + "latticeStructure": "ORC", + "latticeConstant": 6.24 + }, + "Argon": { + "symbol": "Ar", + "atomicNumber": 18, + "atomicWeight": 39.948, + "density": "1.40 (@ -186°C)", + "meltingPoint": 83.8, + "boilingPoint": 87.3, + "atomicRadius": "2-", + "covalentRadius": 98, + "ionicRadius": "", + "atomicVolume": 24.2, + "specificHeat": 0.138, + "fusionHeat": "-", + "evaporationHeat": 6.52, + "thermalConductivity": 0.0177, + "paulingNegativity": 0, + "firstIonizationPotential": 1519.6, + "oxidationStates": "-", + "electronicConfiguration": "[Ne]3s²3p", + "latticeStructure": "FCC", + "latticeConstant": 5.26 + }, + "Potassium": { + "symbol": "K", + "atomicNumber": 19, + "atomicWeight": 39.0983, + "density": 0.856, + "meltingPoint": 336.8, + "boilingPoint": 1047, + "atomicRadius": 235, + "covalentRadius": 203, + "ionicRadius": "", + "atomicVolume": 45.3, + "specificHeat": 0.753, + "fusionHeat": 102.5, + "evaporationHeat": 2.33, + "thermalConductivity": 79, + "paulingNegativity": 0.82, + "firstIonizationPotential": 418.5, + "oxidationStates": 1, + "electronicConfiguration": "[Ar]4s¹", + "latticeStructure": "BCC", + "latticeConstant": 5.23 + }, + "Calcium": { + "symbol": "Ca", + "atomicNumber": 20, + "atomicWeight": 40.078, + "density": 1.55, + "meltingPoint": 1112, + "boilingPoint": 1757, + "atomicRadius": 197, + "covalentRadius": 174, + "ionicRadius": "", + "atomicVolume": 29.9, + "specificHeat": 0.653, + "fusionHeat": 9.2, + "evaporationHeat": 153.6, + "thermalConductivity": "(201)", + "paulingNegativity": 1, + "firstIonizationPotential": 589.4, + "oxidationStates": 2, + "electronicConfiguration": "[Ar]4s²", + "latticeStructure": "FCC", + "latticeConstant": 5.58 + }, + "Scandium": { + "symbol": "Sc", + "atomicNumber": 21, + "atomicWeight": 44.95591, + "density": 2.99, + "meltingPoint": 1814, + "boilingPoint": 3104, + "atomicRadius": 162, + "covalentRadius": 144, + "ionicRadius": "", + "atomicVolume": 15, + "specificHeat": 0.556, + "fusionHeat": 15.8, + "evaporationHeat": 332.7, + "thermalConductivity": 15.8, + "paulingNegativity": 1.36, + "firstIonizationPotential": 630.8, + "oxidationStates": 3, + "electronicConfiguration": "[Ar]3d¹4s²", + "latticeStructure": "HEX", + "latticeConstant": 3.31 + }, + "Titanium": { + "symbol": "Ti", + "atomicNumber": 22, + "atomicWeight": 47.88, + "density": 4.54, + "meltingPoint": 1933, + "boilingPoint": 3560, + "atomicRadius": 147, + "covalentRadius": 132, + "ionicRadius": "", + "atomicVolume": 10.6, + "specificHeat": 0.523, + "fusionHeat": 18.8, + "evaporationHeat": 422.6, + "thermalConductivity": 21.9, + "paulingNegativity": 1.54, + "firstIonizationPotential": 657.8, + "oxidationStates": "4, 3", + "electronicConfiguration": "[Ar]3d²4s²", + "latticeStructure": "HEX", + "latticeConstant": 2.95 + }, + "Vanadium": { + "symbol": "V", + "atomicNumber": 23, + "atomicWeight": 50.9415, + "density": 6.11, + "meltingPoint": 2160, + "boilingPoint": 3650, + "atomicRadius": 134, + "covalentRadius": 122, + "ionicRadius": "", + "atomicVolume": 8.35, + "specificHeat": 0.485, + "fusionHeat": 17.5, + "evaporationHeat": 460, + "thermalConductivity": 30.7, + "paulingNegativity": 1.63, + "firstIonizationPotential": 650.1, + "oxidationStates": "5, 4, 3, 2, 0", + "electronicConfiguration": "[Ar]3d³4s²", + "latticeStructure": "BCC", + "latticeConstant": 3.02 + }, + "Chromium": { + "symbol": "Cr", + "atomicNumber": 24, + "atomicWeight": 51.9961, + "density": 7.18, + "meltingPoint": 2130, + "boilingPoint": 2945, + "atomicRadius": 130, + "covalentRadius": 118, + "ionicRadius": "", + "atomicVolume": 7.23, + "specificHeat": 0.488, + "fusionHeat": 21, + "evaporationHeat": 342, + "thermalConductivity": 93.9, + "paulingNegativity": 1.66, + "firstIonizationPotential": 652.4, + "oxidationStates": "6, 3, 2, 0", + "electronicConfiguration": "[Ar]3d4s¹", + "latticeStructure": "BCC", + "latticeConstant": 2.88 + }, + "Manganese": { + "symbol": "Mn", + "atomicNumber": 25, + "atomicWeight": 54.93805, + "density": 7.21, + "meltingPoint": 1517, + "boilingPoint": 2235, + "atomicRadius": 135, + "covalentRadius": 117, + "ionicRadius": "", + "atomicVolume": 7.39, + "specificHeat": 0.477, + "fusionHeat": "(13.4)", + "evaporationHeat": 221, + "thermalConductivity": "(7.8)", + "paulingNegativity": 1.55, + "firstIonizationPotential": 716.8, + "oxidationStates": "7, 6, 4, 3, 2, 0, -1", + "electronicConfiguration": "[Ar]3d4s²", + "latticeStructure": "CUB", + "latticeConstant": 8.89 + }, + "Iron": { + "symbol": "Fe", + "atomicNumber": 26, + "atomicWeight": 55.847, + "density": 7.874, + "meltingPoint": 1808, + "boilingPoint": 3023, + "atomicRadius": 126, + "covalentRadius": 117, + "ionicRadius": "", + "atomicVolume": 7.1, + "specificHeat": 0.443, + "fusionHeat": 13.8, + "evaporationHeat": "~340", + "thermalConductivity": 80.4, + "paulingNegativity": 1.83, + "firstIonizationPotential": 759.1, + "oxidationStates": "6, 3, 2, 0, -2", + "electronicConfiguration": "[Ar]3d4s²", + "latticeStructure": "BCC", + "latticeConstant": 2.87 + }, + "Cobalt": { + "symbol": "Co", + "atomicNumber": 27, + "atomicWeight": 58.9332, + "density": 8.9, + "meltingPoint": 1768, + "boilingPoint": 3143, + "atomicRadius": 125, + "covalentRadius": 116, + "ionicRadius": "", + "atomicVolume": 6.7, + "specificHeat": 0.456, + "fusionHeat": 15.48, + "evaporationHeat": 389.1, + "thermalConductivity": 100, + "paulingNegativity": 1.88, + "firstIonizationPotential": 758.1, + "oxidationStates": "3, 2, 0, -1", + "electronicConfiguration": "[Ar]3d4s²", + "latticeStructure": "HEX", + "latticeConstant": 2.51 + }, + "Nickel": { + "symbol": "Ni", + "atomicNumber": 28, + "atomicWeight": 58.6934, + "density": 8.902, + "meltingPoint": 1726, + "boilingPoint": 3005, + "atomicRadius": 124, + "covalentRadius": 115, + "ionicRadius": "", + "atomicVolume": 6.6, + "specificHeat": 0.443, + "fusionHeat": 17.61, + "evaporationHeat": 378.6, + "thermalConductivity": 90.9, + "paulingNegativity": 1.91, + "firstIonizationPotential": 736.2, + "oxidationStates": "3, 2, 0", + "electronicConfiguration": "[Ar]3d4s²", + "latticeStructure": "FCC", + "latticeConstant": 3.52 + }, + "Copper": { + "symbol": "Cu", + "atomicNumber": 29, + "atomicWeight": 63.546, + "density": 8.96, + "meltingPoint": 1356.6, + "boilingPoint": 2840, + "atomicRadius": 128, + "covalentRadius": 117, + "ionicRadius": "", + "atomicVolume": 7.1, + "specificHeat": 0.385, + "fusionHeat": 13.01, + "evaporationHeat": 304.6, + "thermalConductivity": 401, + "paulingNegativity": 1.9, + "firstIonizationPotential": 745, + "oxidationStates": "2, 1", + "electronicConfiguration": "[Ar]3d¹4s¹", + "latticeStructure": "FCC", + "latticeConstant": 3.61 + }, + "Zinc": { + "symbol": "Zn", + "atomicNumber": 30, + "atomicWeight": 65.39, + "density": 7.133, + "meltingPoint": 692.73, + "boilingPoint": 1180, + "atomicRadius": 138, + "covalentRadius": 125, + "ionicRadius": "", + "atomicVolume": 9.2, + "specificHeat": 0.388, + "fusionHeat": 7.28, + "evaporationHeat": 114.8, + "thermalConductivity": 116, + "paulingNegativity": 1.65, + "firstIonizationPotential": 905.8, + "oxidationStates": 2, + "electronicConfiguration": "[Ar]3d¹4s²", + "latticeStructure": "HEX", + "latticeConstant": 2.66 + }, + "Gallium": { + "symbol": "Ga", + "atomicNumber": 31, + "atomicWeight": 69.723, + "density": 5.91, + "meltingPoint": 302.93, + "boilingPoint": 2676, + "atomicRadius": 141, + "covalentRadius": 126, + "ionicRadius": "", + "atomicVolume": 11.8, + "specificHeat": 0.372, + "fusionHeat": 5.59, + "evaporationHeat": 270.3, + "thermalConductivity": 28.1, + "paulingNegativity": 1.81, + "firstIonizationPotential": 578.7, + "oxidationStates": 3, + "electronicConfiguration": "[Ar]3d¹4s²4p¹", + "latticeStructure": "ORC", + "latticeConstant": 4.51 + }, + "Germanium": { + "symbol": "Ge", + "atomicNumber": 32, + "atomicWeight": 72.61, + "density": 5.323, + "meltingPoint": 1210.6, + "boilingPoint": 3103, + "atomicRadius": 137, + "covalentRadius": 122, + "ionicRadius": "", + "atomicVolume": 13.6, + "specificHeat": 0.322, + "fusionHeat": 36.8, + "evaporationHeat": 328, + "thermalConductivity": 60.2, + "paulingNegativity": 2.01, + "firstIonizationPotential": 760, + "oxidationStates": 4, + "electronicConfiguration": "[Ar]3d¹4s²4p²", + "latticeStructure": "DIA", + "latticeConstant": 5.66 + }, + "Arsenic": { + "symbol": "As", + "atomicNumber": 33, + "atomicWeight": 74.92159, + "density": "5.73 (grey arsenic)", + "meltingPoint": 1090, + "boilingPoint": 876, + "atomicRadius": 139, + "covalentRadius": 120, + "ionicRadius": "", + "atomicVolume": 13.1, + "specificHeat": 0.328, + "fusionHeat": "-", + "evaporationHeat": 32.4, + "thermalConductivity": "(50.2)", + "paulingNegativity": 2.18, + "firstIonizationPotential": 946.2, + "oxidationStates": "5, 3, -2", + "electronicConfiguration": "[Ar]3d¹4s²4p³", + "latticeStructure": "RHL", + "latticeConstant": 4.13 + }, + "Selenium": { + "symbol": "Se", + "atomicNumber": 34, + "atomicWeight": 78.96, + "density": 4.79, + "meltingPoint": 490, + "boilingPoint": 958.1, + "atomicRadius": 140, + "covalentRadius": 116, + "ionicRadius": "", + "atomicVolume": 16.5, + "specificHeat": "0.321 (Se-Se)", + "fusionHeat": 5.23, + "evaporationHeat": 59.7, + "thermalConductivity": 0.52, + "paulingNegativity": 2.55, + "firstIonizationPotential": 940.4, + "oxidationStates": "6, 4, -2", + "electronicConfiguration": "[Ar]3d¹4s²4p", + "latticeStructure": "HEX", + "latticeConstant": 4.36 + }, + "Bromine": { + "symbol": "Br", + "atomicNumber": 35, + "atomicWeight": 79.904, + "density": 3.12, + "meltingPoint": 265.9, + "boilingPoint": 331.9, + "atomicRadius": "-", + "covalentRadius": 114, + "ionicRadius": "", + "atomicVolume": 23.5, + "specificHeat": "0.473 (Br-Br)", + "fusionHeat": "10.57 (Br-Br)", + "evaporationHeat": "29.56 (Br-Br)", + "thermalConductivity": 0.005, + "paulingNegativity": 2.96, + "firstIonizationPotential": 1142, + "oxidationStates": "7, 5, 3, 1, -1", + "electronicConfiguration": "[Ar]3d¹4s²4p", + "latticeStructure": "ORC", + "latticeConstant": 6.67 + }, + "Krypton": { + "symbol": "Kr", + "atomicNumber": 36, + "atomicWeight": 83.8, + "density": "2.155 (@ -153°C)", + "meltingPoint": 116.6, + "boilingPoint": 120.85, + "atomicRadius": "-", + "covalentRadius": 112, + "ionicRadius": "", + "atomicVolume": 32.2, + "specificHeat": 0.247, + "fusionHeat": "-", + "evaporationHeat": 9.05, + "thermalConductivity": 0.0095, + "paulingNegativity": 0, + "firstIonizationPotential": 1350, + "oxidationStates": 2, + "electronicConfiguration": "[Ar]3d¹4s²4p", + "latticeStructure": "FCC", + "latticeConstant": 5.72 + }, + "Rubidium": { + "symbol": "Rb", + "atomicNumber": 37, + "atomicWeight": 85.4678, + "density": 1.532, + "meltingPoint": 312.2, + "boilingPoint": 961, + "atomicRadius": 248, + "covalentRadius": 216, + "ionicRadius": "", + "atomicVolume": 55.9, + "specificHeat": 0.36, + "fusionHeat": 2.2, + "evaporationHeat": 75.8, + "thermalConductivity": 58.2, + "paulingNegativity": 0.82, + "firstIonizationPotential": 402.8, + "oxidationStates": 1, + "electronicConfiguration": "[Kr]5s¹", + "latticeStructure": "BCC", + "latticeConstant": 5.59 + }, + "Strontium": { + "symbol": "Sr", + "atomicNumber": 38, + "atomicWeight": 87.62, + "density": 2.54, + "meltingPoint": 1042, + "boilingPoint": 1657, + "atomicRadius": 215, + "covalentRadius": 191, + "ionicRadius": "", + "atomicVolume": 33.7, + "specificHeat": 0.301, + "fusionHeat": 9.2, + "evaporationHeat": 144, + "thermalConductivity": "(35.4)", + "paulingNegativity": 0.95, + "firstIonizationPotential": 549, + "oxidationStates": 2, + "electronicConfiguration": "[Kr]5s²", + "latticeStructure": "FCC", + "latticeConstant": 6.08 + }, + "Yttrium": { + "symbol": "Y", + "atomicNumber": 39, + "atomicWeight": 88.90585, + "density": 4.47, + "meltingPoint": 1795, + "boilingPoint": 3611, + "atomicRadius": 178, + "covalentRadius": 162, + "ionicRadius": "", + "atomicVolume": 19.8, + "specificHeat": 0.284, + "fusionHeat": 11.5, + "evaporationHeat": 367, + "thermalConductivity": "(17.2)", + "paulingNegativity": 1.22, + "firstIonizationPotential": 615.4, + "oxidationStates": 3, + "electronicConfiguration": "[Kr]4d¹5s²", + "latticeStructure": "HEX", + "latticeConstant": 3.65 + }, + "Zirconium": { + "symbol": "Zr", + "atomicNumber": 40, + "atomicWeight": 91.224, + "density": 6.506, + "meltingPoint": 2125, + "boilingPoint": 4650, + "atomicRadius": 160, + "covalentRadius": 145, + "ionicRadius": "", + "atomicVolume": 14.1, + "specificHeat": 0.281, + "fusionHeat": 19.2, + "evaporationHeat": 567, + "thermalConductivity": 22.7, + "paulingNegativity": 1.33, + "firstIonizationPotential": 659.7, + "oxidationStates": 4, + "electronicConfiguration": "[Kr]4d²5s²", + "latticeStructure": "HEX", + "latticeConstant": 3.23 + }, + "Niobium": { + "symbol": "Nb", + "atomicNumber": 41, + "atomicWeight": 92.90638, + "density": 8.57, + "meltingPoint": 2741, + "boilingPoint": 5015, + "atomicRadius": 146, + "covalentRadius": 134, + "ionicRadius": "", + "atomicVolume": 10.8, + "specificHeat": 0.268, + "fusionHeat": 26.8, + "evaporationHeat": 680, + "thermalConductivity": 53.7, + "paulingNegativity": 1.6, + "firstIonizationPotential": 663.6, + "oxidationStates": "5, 3", + "electronicConfiguration": "[Kr]4d5s¹", + "latticeStructure": "BCC", + "latticeConstant": 3.3 + }, + "Molybdenum": { + "symbol": "Mo", + "atomicNumber": 42, + "atomicWeight": 95.94, + "density": 10.22, + "meltingPoint": 2890, + "boilingPoint": 4885, + "atomicRadius": 139, + "covalentRadius": 130, + "ionicRadius": "", + "atomicVolume": 9.4, + "specificHeat": 0.251, + "fusionHeat": 28, + "evaporationHeat": "~590", + "thermalConductivity": "(138)", + "paulingNegativity": 2.16, + "firstIonizationPotential": 684.8, + "oxidationStates": "6, 5, 4, 3, 2, 0", + "electronicConfiguration": "[Kr]4d5s¹", + "latticeStructure": "BCC", + "latticeConstant": 3.15 + }, + "Technetium": { + "symbol": "Tc", + "atomicNumber": 43, + "atomicWeight": 97.9072, + "density": 11.5, + "meltingPoint": 2445, + "boilingPoint": 5150, + "atomicRadius": 136, + "covalentRadius": 127, + "ionicRadius": "", + "atomicVolume": 8.5, + "specificHeat": 0.243, + "fusionHeat": 23.8, + "evaporationHeat": 585, + "thermalConductivity": 50.6, + "paulingNegativity": 1.9, + "firstIonizationPotential": 702.2, + "oxidationStates": 7, + "electronicConfiguration": "[Kr]4d5s¹", + "latticeStructure": "HEX", + "latticeConstant": 2.74 + }, + "Ruthenium": { + "symbol": "Ru", + "atomicNumber": 44, + "atomicWeight": 101.07, + "density": 12.41, + "meltingPoint": 2583, + "boilingPoint": 4173, + "atomicRadius": 134, + "covalentRadius": 125, + "ionicRadius": "", + "atomicVolume": 8.3, + "specificHeat": 0.238, + "fusionHeat": "(25.5)", + "evaporationHeat": "-", + "thermalConductivity": 117, + "paulingNegativity": 2.2, + "firstIonizationPotential": 710.3, + "oxidationStates": "8, 6, 4, 3, 2, 0, -2", + "electronicConfiguration": "[Kr]4d5s¹", + "latticeStructure": "HEX", + "latticeConstant": 2.7 + }, + "Rhodium": { + "symbol": "Rh", + "atomicNumber": 45, + "atomicWeight": 102.9055, + "density": 12.41, + "meltingPoint": 2239, + "boilingPoint": 4000, + "atomicRadius": 134, + "covalentRadius": 125, + "ionicRadius": "", + "atomicVolume": 8.3, + "specificHeat": 0.244, + "fusionHeat": 21.8, + "evaporationHeat": 494, + "thermalConductivity": 150, + "paulingNegativity": 2.28, + "firstIonizationPotential": 719.5, + "oxidationStates": "5, 4, 3, 2, 1, 0", + "electronicConfiguration": "[Kr]4d5s¹", + "latticeStructure": "FCC", + "latticeConstant": 3.8 + }, + "Palladium": { + "symbol": "Pd", + "atomicNumber": 46, + "atomicWeight": 106.42, + "density": 12.02, + "meltingPoint": 1825, + "boilingPoint": 3413, + "atomicRadius": 137, + "covalentRadius": 128, + "ionicRadius": "", + "atomicVolume": 8.9, + "specificHeat": 0.244, + "fusionHeat": 17.24, + "evaporationHeat": 372.4, + "thermalConductivity": 71.8, + "paulingNegativity": 2.2, + "firstIonizationPotential": 803.5, + "oxidationStates": "4, 2, 0", + "electronicConfiguration": "[Kr]4d5s", + "latticeStructure": "FCC", + "latticeConstant": 3.89 + }, + "Silver": { + "symbol": "Ag", + "atomicNumber": 47, + "atomicWeight": 107.8682, + "density": 10.5, + "meltingPoint": 1235.1, + "boilingPoint": 2485, + "atomicRadius": 144, + "covalentRadius": 134, + "ionicRadius": "", + "atomicVolume": 10.3, + "specificHeat": 0.237, + "fusionHeat": 11.95, + "evaporationHeat": 254.1, + "thermalConductivity": 429, + "paulingNegativity": 1.93, + "firstIonizationPotential": 730.5, + "oxidationStates": "2, 1", + "electronicConfiguration": "[Kr]4d5s¹", + "latticeStructure": "FCC", + "latticeConstant": 4.09 + }, + "Cadmium": { + "symbol": "Cd", + "atomicNumber": 48, + "atomicWeight": 112.411, + "density": 8.65, + "meltingPoint": 594.1, + "boilingPoint": 1038, + "atomicRadius": 154, + "covalentRadius": 148, + "ionicRadius": "", + "atomicVolume": 13.1, + "specificHeat": 0.232, + "fusionHeat": 6.11, + "evaporationHeat": 59.1, + "thermalConductivity": 96.9, + "paulingNegativity": 1.69, + "firstIonizationPotential": 867.2, + "oxidationStates": 2, + "electronicConfiguration": "[Kr]4d5s²", + "latticeStructure": "HEX", + "latticeConstant": 2.98 + }, + "Indium": { + "symbol": "In", + "atomicNumber": 49, + "atomicWeight": 114.818, + "density": 7.31, + "meltingPoint": 429.32, + "boilingPoint": 2353, + "atomicRadius": 166, + "covalentRadius": 144, + "ionicRadius": "", + "atomicVolume": 15.7, + "specificHeat": 0.234, + "fusionHeat": 3.24, + "evaporationHeat": 225.1, + "thermalConductivity": 81.8, + "paulingNegativity": 1.78, + "firstIonizationPotential": 558, + "oxidationStates": 3, + "electronicConfiguration": "[Kr]4d5s²5p¹", + "latticeStructure": "TET", + "latticeConstant": 4.59 + }, + "Tin": { + "symbol": "Sn", + "atomicNumber": 50, + "atomicWeight": 118.71, + "density": 7.31, + "meltingPoint": 505.1, + "boilingPoint": 2543, + "atomicRadius": 162, + "covalentRadius": 141, + "ionicRadius": "", + "atomicVolume": 16.3, + "specificHeat": 0.222, + "fusionHeat": 7.07, + "evaporationHeat": 296, + "thermalConductivity": 66.8, + "paulingNegativity": 1.96, + "firstIonizationPotential": 708.2, + "oxidationStates": "4, 2", + "electronicConfiguration": "[Kr]4d5s²5p²", + "latticeStructure": "TET", + "latticeConstant": 5.82 + }, + "Antimony": { + "symbol": "Sb", + "atomicNumber": 51, + "atomicWeight": 121.76, + "density": 6.691, + "meltingPoint": 903.9, + "boilingPoint": 1908, + "atomicRadius": 159, + "covalentRadius": 140, + "ionicRadius": "", + "atomicVolume": 18.4, + "specificHeat": 0.205, + "fusionHeat": 20.08, + "evaporationHeat": 195.2, + "thermalConductivity": 24.43, + "paulingNegativity": 2.05, + "firstIonizationPotential": 833.3, + "oxidationStates": "5, 3, -2", + "electronicConfiguration": "[Kr]4d5s²5p³", + "latticeStructure": "RHL", + "latticeConstant": 4.51 + }, + "Tellurium": { + "symbol": "Te", + "atomicNumber": 52, + "atomicWeight": 127.6, + "density": 6.24, + "meltingPoint": 722.7, + "boilingPoint": 1263, + "atomicRadius": 160, + "covalentRadius": 136, + "ionicRadius": "", + "atomicVolume": 20.5, + "specificHeat": 0.201, + "fusionHeat": 17.91, + "evaporationHeat": 49.8, + "thermalConductivity": 14.3, + "paulingNegativity": 2.1, + "firstIonizationPotential": 869, + "oxidationStates": "6, 4, 2", + "electronicConfiguration": "[Kr]4d5s²5p", + "latticeStructure": "HEX", + "latticeConstant": 4.45 + }, + "Iodine": { + "symbol": "I", + "atomicNumber": 53, + "atomicWeight": 126.90447, + "density": 4.93, + "meltingPoint": 386.7, + "boilingPoint": 457.5, + "atomicRadius": "-", + "covalentRadius": 133, + "ionicRadius": "", + "atomicVolume": 25.7, + "specificHeat": "0.427 (I-I)", + "fusionHeat": "15.52 (I-I)", + "evaporationHeat": "41.95 (I-I)", + "thermalConductivity": "(0.45)", + "paulingNegativity": 2.66, + "firstIonizationPotential": 1008.3, + "oxidationStates": "7, 5, 1, -1", + "electronicConfiguration": "[Kr]4d5s²5p", + "latticeStructure": "ORC", + "latticeConstant": 7.72 + }, + "Xenon": { + "symbol": "Xe", + "atomicNumber": 54, + "atomicWeight": 131.29, + "density": "3.52 (@ -109°C)", + "meltingPoint": 161.3, + "boilingPoint": 166.1, + "atomicRadius": "-", + "covalentRadius": 131, + "ionicRadius": "", + "atomicVolume": 42.9, + "specificHeat": 0.158, + "fusionHeat": "-", + "evaporationHeat": 12.65, + "thermalConductivity": 0.0057, + "paulingNegativity": 0, + "firstIonizationPotential": 1170, + "oxidationStates": 7, + "electronicConfiguration": "[Kr]4d5s²5p", + "latticeStructure": "FCC", + "latticeConstant": 6.2 + }, + "Cesium": { + "symbol": "Cs", + "atomicNumber": 55, + "atomicWeight": 132.90543, + "density": 1.873, + "meltingPoint": 301.6, + "boilingPoint": 951.6, + "atomicRadius": 267, + "covalentRadius": 235, + "ionicRadius": "", + "atomicVolume": 70, + "specificHeat": 0.241, + "fusionHeat": 2.09, + "evaporationHeat": 68.3, + "thermalConductivity": 35.9, + "paulingNegativity": 0.79, + "firstIonizationPotential": 375.5, + "oxidationStates": 1, + "electronicConfiguration": "[Xe]6s¹", + "latticeStructure": "BCC", + "latticeConstant": 6.05 + }, + "Barium": { + "symbol": "Ba", + "atomicNumber": 56, + "atomicWeight": 137.327, + "density": 3.5, + "meltingPoint": 1002, + "boilingPoint": 1910, + "atomicRadius": 222, + "covalentRadius": 198, + "ionicRadius": "", + "atomicVolume": 39, + "specificHeat": 0.192, + "fusionHeat": 7.66, + "evaporationHeat": 142, + "thermalConductivity": "(18.4)", + "paulingNegativity": 0.89, + "firstIonizationPotential": 502.5, + "oxidationStates": 2, + "electronicConfiguration": "[Xe]6s²", + "latticeStructure": "BCC", + "latticeConstant": 5.02 + }, + "Lanthanum": { + "symbol": "La", + "atomicNumber": 57, + "atomicWeight": 138.9055, + "density": 6.15, + "meltingPoint": 1194, + "boilingPoint": 3730, + "atomicRadius": 187, + "covalentRadius": 169, + "ionicRadius": "", + "atomicVolume": 22.5, + "specificHeat": 0.197, + "fusionHeat": 8.5, + "evaporationHeat": 402, + "thermalConductivity": 13.4, + "paulingNegativity": 1.1, + "firstIonizationPotential": 541.1, + "oxidationStates": 3, + "electronicConfiguration": "[Xe]6d¹6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.75 + }, + "Cerium": { + "symbol": "Ce", + "atomicNumber": 58, + "atomicWeight": 140.115, + "density": 6.757, + "meltingPoint": 1072, + "boilingPoint": 3699, + "atomicRadius": 181, + "covalentRadius": 165, + "ionicRadius": "", + "atomicVolume": 21, + "specificHeat": 0.205, + "fusionHeat": 5.2, + "evaporationHeat": 398, + "thermalConductivity": 11.3, + "paulingNegativity": 1.12, + "firstIonizationPotential": 540.1, + "oxidationStates": "4, 3", + "electronicConfiguration": "[Xe]4f¹5d¹6s²", + "latticeStructure": "FCC", + "latticeConstant": 5.16 + }, + "Praseodymium": { + "symbol": "Pr", + "atomicNumber": 59, + "atomicWeight": 140.90765, + "density": 6.773, + "meltingPoint": 1204, + "boilingPoint": 3785, + "atomicRadius": 182, + "covalentRadius": 165, + "ionicRadius": "", + "atomicVolume": 20.8, + "specificHeat": 0.192, + "fusionHeat": 11.3, + "evaporationHeat": 331, + "thermalConductivity": 12.5, + "paulingNegativity": 1.13, + "firstIonizationPotential": 526.6, + "oxidationStates": "4, 3", + "electronicConfiguration": "[Xe]4f³5d6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.67 + }, + "Neodymium": { + "symbol": "Nd", + "atomicNumber": 60, + "atomicWeight": 144.24, + "density": 7.007, + "meltingPoint": 1294, + "boilingPoint": 3341, + "atomicRadius": 182, + "covalentRadius": 184, + "ionicRadius": "", + "atomicVolume": 20.6, + "specificHeat": 0.205, + "fusionHeat": 7.1, + "evaporationHeat": 289, + "thermalConductivity": "(16.5)", + "paulingNegativity": 1.14, + "firstIonizationPotential": 531.5, + "oxidationStates": 3, + "electronicConfiguration": "[Xe]4f5d6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.66 + }, + "Promethium": { + "symbol": "Pm", + "atomicNumber": 61, + "atomicWeight": 144.9127, + "density": 7.2, + "meltingPoint": 1441, + "boilingPoint": 3000, + "atomicRadius": "-", + "covalentRadius": 163, + "ionicRadius": "", + "atomicVolume": "-", + "specificHeat": 0.185, + "fusionHeat": "-", + "evaporationHeat": "-", + "thermalConductivity": 17.9, + "paulingNegativity": 0, + "firstIonizationPotential": 536, + "oxidationStates": 3, + "electronicConfiguration": "[Xe]4f5d6s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Samarium": { + "symbol": "Sm", + "atomicNumber": 62, + "atomicWeight": 150.36, + "density": 7.52, + "meltingPoint": 1350, + "boilingPoint": 2064, + "atomicRadius": 181, + "covalentRadius": 162, + "ionicRadius": "", + "atomicVolume": 19.9, + "specificHeat": 0.18, + "fusionHeat": 8.9, + "evaporationHeat": 165, + "thermalConductivity": "(13.3)", + "paulingNegativity": 1.17, + "firstIonizationPotential": 540.1, + "oxidationStates": "3, 2", + "electronicConfiguration": "[Xe]4f5d6s²", + "latticeStructure": "RHL", + "latticeConstant": 9 + }, + "Europium": { + "symbol": "Eu", + "atomicNumber": 63, + "atomicWeight": 151.965, + "density": 5.243, + "meltingPoint": 1095, + "boilingPoint": 1870, + "atomicRadius": 199, + "covalentRadius": 185, + "ionicRadius": "", + "atomicVolume": 28.9, + "specificHeat": 0.176, + "fusionHeat": "-", + "evaporationHeat": 176, + "thermalConductivity": 13.9, + "paulingNegativity": 0, + "firstIonizationPotential": 546.9, + "oxidationStates": "3, 2", + "electronicConfiguration": "[Xe]4f5d6s²", + "latticeStructure": "BCC", + "latticeConstant": 4.61 + }, + "Gadolinium": { + "symbol": "Gd", + "atomicNumber": 64, + "atomicWeight": 157.25, + "density": 7.9, + "meltingPoint": 1586, + "boilingPoint": 3539, + "atomicRadius": 179, + "covalentRadius": 161, + "ionicRadius": "", + "atomicVolume": 19.9, + "specificHeat": 0.23, + "fusionHeat": "-", + "evaporationHeat": 398, + "thermalConductivity": "(10.5)", + "paulingNegativity": 1.2, + "firstIonizationPotential": 594.2, + "oxidationStates": 3, + "electronicConfiguration": "[Xe]4f5d¹6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.64 + }, + "Terbium": { + "symbol": "Tb", + "atomicNumber": 65, + "atomicWeight": 158.92534, + "density": 8.229, + "meltingPoint": 1629, + "boilingPoint": 3296, + "atomicRadius": 180, + "covalentRadius": 159, + "ionicRadius": "", + "atomicVolume": 19.2, + "specificHeat": 0.183, + "fusionHeat": "-", + "evaporationHeat": 389, + "thermalConductivity": 11.1, + "paulingNegativity": 1.2, + "firstIonizationPotential": 569, + "oxidationStates": "4, 3", + "electronicConfiguration": "[Xe]4f5d6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.6 + }, + "Dysprosium": { + "symbol": "Dy", + "atomicNumber": 66, + "atomicWeight": 162.5, + "density": 8.55, + "meltingPoint": 1685, + "boilingPoint": 2835, + "atomicRadius": 180, + "covalentRadius": 159, + "ionicRadius": "", + "atomicVolume": 19, + "specificHeat": 0.173, + "fusionHeat": "-", + "evaporationHeat": 291, + "thermalConductivity": 10.7, + "paulingNegativity": "-", + "firstIonizationPotential": 567, + "oxidationStates": 3, + "electronicConfiguration": "[Xe]4f5d6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.59 + }, + "Holmium": { + "symbol": "Ho", + "atomicNumber": 67, + "atomicWeight": 164.93032, + "density": 8.795, + "meltingPoint": 1747, + "boilingPoint": 2968, + "atomicRadius": 179, + "covalentRadius": 158, + "ionicRadius": "", + "atomicVolume": 18.7, + "specificHeat": 0.164, + "fusionHeat": "-", + "evaporationHeat": 301, + "thermalConductivity": "(16.2)", + "paulingNegativity": 1.23, + "firstIonizationPotential": 574, + "oxidationStates": 3, + "electronicConfiguration": "[Xe]4f¹¹5d6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.58 + }, + "Erbium": { + "symbol": "Er", + "atomicNumber": 68, + "atomicWeight": 167.26, + "density": 9.06, + "meltingPoint": 1802, + "boilingPoint": 3136, + "atomicRadius": 178, + "covalentRadius": 157, + "ionicRadius": "", + "atomicVolume": 18.4, + "specificHeat": 0.168, + "fusionHeat": "-", + "evaporationHeat": 317, + "thermalConductivity": "(14.5)", + "paulingNegativity": 1.24, + "firstIonizationPotential": 581, + "oxidationStates": 3, + "electronicConfiguration": "[Xe]4f¹²5d6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.56 + }, + "Thulium": { + "symbol": "Tm", + "atomicNumber": 69, + "atomicWeight": 168.93421, + "density": 9.321, + "meltingPoint": 1818, + "boilingPoint": 2220, + "atomicRadius": 177, + "covalentRadius": 156, + "ionicRadius": "", + "atomicVolume": 18.1, + "specificHeat": 0.16, + "fusionHeat": "-", + "evaporationHeat": 232, + "thermalConductivity": "(16.9)", + "paulingNegativity": 1.25, + "firstIonizationPotential": 589, + "oxidationStates": "3, 2", + "electronicConfiguration": "[Xe]4f¹³5d6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.54 + }, + "Ytterbium": { + "symbol": "Yb", + "atomicNumber": 70, + "atomicWeight": 173.04, + "density": 6.9654, + "meltingPoint": 1097, + "boilingPoint": 1466, + "atomicRadius": 194, + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": 24.8, + "specificHeat": 0.145, + "fusionHeat": 3.35, + "evaporationHeat": 159, + "thermalConductivity": "(34.9)", + "paulingNegativity": 1.1, + "firstIonizationPotential": 603, + "oxidationStates": "3, 2", + "electronicConfiguration": "[Xe]4f¹5d¹6s²", + "latticeStructure": "FCC", + "latticeConstant": 5.49 + }, + "Lutetium": { + "symbol": "Lu", + "atomicNumber": 71, + "atomicWeight": 174.967, + "density": 9.8404, + "meltingPoint": 1936, + "boilingPoint": 3668, + "atomicRadius": 175, + "covalentRadius": 156, + "ionicRadius": "", + "atomicVolume": 17.8, + "specificHeat": 0.155, + "fusionHeat": "-", + "evaporationHeat": 414, + "thermalConductivity": "(16.4)", + "paulingNegativity": 1.27, + "firstIonizationPotential": 513, + "oxidationStates": 3, + "electronicConfiguration": "[Xe]4f¹5d¹6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.51 + }, + "Hafnium": { + "symbol": "Hf", + "atomicNumber": 72, + "atomicWeight": 178.49, + "density": 13.31, + "meltingPoint": 2503, + "boilingPoint": 5470, + "atomicRadius": 167, + "covalentRadius": 144, + "ionicRadius": "", + "atomicVolume": 13.6, + "specificHeat": 0.146, + "fusionHeat": "(25.1)", + "evaporationHeat": 575, + "thermalConductivity": 23, + "paulingNegativity": 1.3, + "firstIonizationPotential": 575.2, + "oxidationStates": 4, + "electronicConfiguration": "[Xe]4f¹5d²6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.2 + }, + "Tantalum": { + "symbol": "Ta", + "atomicNumber": 73, + "atomicWeight": 180.9479, + "density": 16.654, + "meltingPoint": 3269, + "boilingPoint": 5698, + "atomicRadius": 149, + "covalentRadius": 134, + "ionicRadius": "", + "atomicVolume": 10.9, + "specificHeat": 0.14, + "fusionHeat": 24.7, + "evaporationHeat": 758, + "thermalConductivity": 57.5, + "paulingNegativity": 1.5, + "firstIonizationPotential": 760.1, + "oxidationStates": 5, + "electronicConfiguration": "[Xe]4f¹5d³6s²", + "latticeStructure": "BCC", + "latticeConstant": 3.31 + }, + "Tungsten": { + "symbol": "W", + "atomicNumber": 74, + "atomicWeight": 183.84, + "density": 19.3, + "meltingPoint": 3680, + "boilingPoint": 5930, + "atomicRadius": 141, + "covalentRadius": 130, + "ionicRadius": "", + "atomicVolume": 9.53, + "specificHeat": 0.133, + "fusionHeat": "(35)", + "evaporationHeat": 824, + "thermalConductivity": 173, + "paulingNegativity": 1.7, + "firstIonizationPotential": 769.7, + "oxidationStates": "6, 5, 4, 3, 2, 0", + "electronicConfiguration": "[Xe]4f¹5d6s²", + "latticeStructure": "BCC", + "latticeConstant": 3.16 + }, + "Rhenium": { + "symbol": "Re", + "atomicNumber": 75, + "atomicWeight": 186.207, + "density": 21.02, + "meltingPoint": 3453, + "boilingPoint": 5900, + "atomicRadius": 137, + "covalentRadius": 128, + "ionicRadius": "", + "atomicVolume": 8.85, + "specificHeat": 0.138, + "fusionHeat": 34, + "evaporationHeat": 704, + "thermalConductivity": 48, + "paulingNegativity": 1.9, + "firstIonizationPotential": 759.1, + "oxidationStates": "5, 4, 3, 2, -1", + "electronicConfiguration": "[Xe]4f¹5d6s²", + "latticeStructure": "HEX", + "latticeConstant": 2.76 + }, + "Osmium": { + "symbol": "Os", + "atomicNumber": 76, + "atomicWeight": 190.23, + "density": 22.57, + "meltingPoint": 3327, + "boilingPoint": 5300, + "atomicRadius": 135, + "covalentRadius": 126, + "ionicRadius": "", + "atomicVolume": 8.43, + "specificHeat": 0.131, + "fusionHeat": 31.7, + "evaporationHeat": 738, + "thermalConductivity": "(87.6)", + "paulingNegativity": 2.2, + "firstIonizationPotential": 819.8, + "oxidationStates": "8, 6, 4, 3, 2, 0, -2", + "electronicConfiguration": "[Xe]4f¹5d6s²", + "latticeStructure": "HEX", + "latticeConstant": 2.74 + }, + "Iridium": { + "symbol": "Ir", + "atomicNumber": 77, + "atomicWeight": 192.22, + "density": 22.42, + "meltingPoint": 2683, + "boilingPoint": 4403, + "atomicRadius": 136, + "covalentRadius": 127, + "ionicRadius": "", + "atomicVolume": 8.54, + "specificHeat": 0.133, + "fusionHeat": 27.61, + "evaporationHeat": 604, + "thermalConductivity": 147, + "paulingNegativity": 2.2, + "firstIonizationPotential": 868.1, + "oxidationStates": "6, 4, 3, 2, 1, 0, -1", + "electronicConfiguration": "[Xe]4f¹5d6s²", + "latticeStructure": "FCC", + "latticeConstant": 3.84 + }, + "Platinum": { + "symbol": "Pt", + "atomicNumber": 78, + "atomicWeight": 195.08, + "density": 21.45, + "meltingPoint": 2045, + "boilingPoint": 4100, + "atomicRadius": 139, + "covalentRadius": 130, + "ionicRadius": "", + "atomicVolume": 9.1, + "specificHeat": 0.133, + "fusionHeat": 21.76, + "evaporationHeat": "~470", + "thermalConductivity": 71.6, + "paulingNegativity": 2.28, + "firstIonizationPotential": 868.1, + "oxidationStates": "4, 2, 0", + "electronicConfiguration": "[Xe]4f¹5d6s²", + "latticeStructure": "FCC", + "latticeConstant": 3.92 + }, + "Gold": { + "symbol": "Au", + "atomicNumber": 79, + "atomicWeight": 196.96654, + "density": 19.3, + "meltingPoint": 1337.58, + "boilingPoint": 3080, + "atomicRadius": 146, + "covalentRadius": 134, + "ionicRadius": "", + "atomicVolume": 10.2, + "specificHeat": 0.129, + "fusionHeat": 12.68, + "evaporationHeat": "~340", + "thermalConductivity": 318, + "paulingNegativity": 2.54, + "firstIonizationPotential": 889.3, + "oxidationStates": "3, 1", + "electronicConfiguration": "[Xe]4f¹5d¹6s²", + "latticeStructure": "FCC", + "latticeConstant": 4.08 + }, + "Mercury": { + "symbol": "Hg", + "atomicNumber": 80, + "atomicWeight": 200.59, + "density": "13.546 (@ +20°C)", + "meltingPoint": 234.28, + "boilingPoint": 629.73, + "atomicRadius": 157, + "covalentRadius": 149, + "ionicRadius": "", + "atomicVolume": 14.8, + "specificHeat": 0.138, + "fusionHeat": 2.295, + "evaporationHeat": 58.5, + "thermalConductivity": 8.3, + "paulingNegativity": 2, + "firstIonizationPotential": 1006, + "oxidationStates": "2, 1", + "electronicConfiguration": "[Xe]4f¹5d¹6s²", + "latticeStructure": "RHL", + "latticeConstant": 2.99 + }, + "Thallium": { + "symbol": "Tl", + "atomicNumber": 81, + "atomicWeight": 204.3833, + "density": 11.85, + "meltingPoint": 576.6, + "boilingPoint": 1730, + "atomicRadius": 171, + "covalentRadius": 148, + "ionicRadius": "", + "atomicVolume": 17.2, + "specificHeat": 0.128, + "fusionHeat": 4.31, + "evaporationHeat": 162.4, + "thermalConductivity": 46.1, + "paulingNegativity": 1.62, + "firstIonizationPotential": 588.9, + "oxidationStates": "3, 1", + "electronicConfiguration": "[Xe]4f¹5d¹6s²6p¹", + "latticeStructure": "HEX", + "latticeConstant": 3.46 + }, + "Lead": { + "symbol": "Pb", + "atomicNumber": 82, + "atomicWeight": 207.2, + "density": 11.35, + "meltingPoint": 600.65, + "boilingPoint": 2013, + "atomicRadius": 175, + "covalentRadius": 147, + "ionicRadius": "", + "atomicVolume": 18.3, + "specificHeat": 0.159, + "fusionHeat": 4.77, + "evaporationHeat": 177.8, + "thermalConductivity": 35.3, + "paulingNegativity": 1.8, + "firstIonizationPotential": 715.2, + "oxidationStates": "4, 2", + "electronicConfiguration": "[Xe]4f¹5d¹6s²6p²", + "latticeStructure": "FCC", + "latticeConstant": 4.95 + }, + "Bismuth": { + "symbol": "Bi", + "atomicNumber": 83, + "atomicWeight": 208.98037, + "density": 9.747, + "meltingPoint": 544.5, + "boilingPoint": 1883, + "atomicRadius": 170, + "covalentRadius": 146, + "ionicRadius": "", + "atomicVolume": 21.3, + "specificHeat": 0.124, + "fusionHeat": 11, + "evaporationHeat": 172, + "thermalConductivity": 7.9, + "paulingNegativity": 2.02, + "firstIonizationPotential": 702.9, + "oxidationStates": "5, 3", + "electronicConfiguration": "[Xe]4f¹5d¹6s²6p³", + "latticeStructure": "RHL", + "latticeConstant": 4.75 + }, + "Polonium": { + "symbol": "Po", + "atomicNumber": 84, + "atomicWeight": 208.9824, + "density": 9.32, + "meltingPoint": 527, + "boilingPoint": 1235, + "atomicRadius": 176, + "covalentRadius": 146, + "ionicRadius": "", + "atomicVolume": 22.7, + "specificHeat": 0.125, + "fusionHeat": "(10)", + "evaporationHeat": "(102.9)", + "thermalConductivity": "-", + "paulingNegativity": 2, + "firstIonizationPotential": 813.1, + "oxidationStates": "6, 4, 2", + "electronicConfiguration": "[Xe]4f¹5d¹6s²6p", + "latticeStructure": "SC", + "latticeConstant": 3.35 + }, + "Astatine": { + "symbol": "At", + "atomicNumber": 85, + "atomicWeight": 209.9871, + "density": "n/a", + "meltingPoint": 575, + "boilingPoint": 610, + "atomicRadius": "-", + "covalentRadius": "(145)", + "ionicRadius": "", + "atomicVolume": "-", + "specificHeat": "-", + "fusionHeat": "-", + "evaporationHeat": "-", + "thermalConductivity": "-", + "paulingNegativity": 2.2, + "firstIonizationPotential": 916.3, + "oxidationStates": "7, 5, 3, 1, -1", + "electronicConfiguration": "[Xe]4f¹5d¹6s²6p", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Radon": { + "symbol": "Rn", + "atomicNumber": 86, + "atomicWeight": 222.0176, + "density": "4.4 (@ -62°C)", + "meltingPoint": 202, + "boilingPoint": 211.4, + "atomicRadius": "-", + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": "-", + "specificHeat": 0.094, + "fusionHeat": "-", + "evaporationHeat": 18.1, + "thermalConductivity": 0.0036, + "paulingNegativity": "-", + "firstIonizationPotential": 1036.5, + "oxidationStates": "-", + "electronicConfiguration": "[Xe]4f¹5d¹6s²6p", + "latticeStructure": "FCC", + "latticeConstant": "n/a" + }, + "Francium": { + "symbol": "Fr", + "atomicNumber": 87, + "atomicWeight": 223.0197, + "density": "n/a", + "meltingPoint": 300, + "boilingPoint": 950, + "atomicRadius": "-", + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": "-", + "specificHeat": "-", + "fusionHeat": 15, + "evaporationHeat": "-", + "thermalConductivity": "-", + "paulingNegativity": 0.7, + "firstIonizationPotential": "~375", + "oxidationStates": 2, + "electronicConfiguration": "[Rn]7s¹", + "latticeStructure": "BCC", + "latticeConstant": "n/a" + }, + "Radium": { + "symbol": "Ra", + "atomicNumber": 88, + "atomicWeight": 226.0254, + "density": "(5.5)", + "meltingPoint": 973, + "boilingPoint": 1413, + "atomicRadius": "-", + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": 45, + "specificHeat": 0.12, + "fusionHeat": "(9.6)", + "evaporationHeat": "(113)", + "thermalConductivity": "(18.6)", + "paulingNegativity": 0.9, + "firstIonizationPotential": 509, + "oxidationStates": 2, + "electronicConfiguration": "[Rn]7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Actinium": { + "symbol": "Ac", + "atomicNumber": 89, + "atomicWeight": 227.0278, + "density": "n/a", + "meltingPoint": 1320, + "boilingPoint": 3470, + "atomicRadius": 188, + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": 22.54, + "specificHeat": "-", + "fusionHeat": "(10.5)", + "evaporationHeat": "(292.9)", + "thermalConductivity": "-", + "paulingNegativity": 1.1, + "firstIonizationPotential": 665.5, + "oxidationStates": 3, + "electronicConfiguration": "[Rn]6d¹7s²", + "latticeStructure": "FCC", + "latticeConstant": 5.31 + }, + "Thorium": { + "symbol": "Th", + "atomicNumber": 90, + "atomicWeight": 232.0381, + "density": 11.78, + "meltingPoint": 2028, + "boilingPoint": 5060, + "atomicRadius": 180, + "covalentRadius": 165, + "ionicRadius": "", + "atomicVolume": 19.8, + "specificHeat": 0.113, + "fusionHeat": 16.11, + "evaporationHeat": 513.7, + "thermalConductivity": "(54.0)", + "paulingNegativity": 1.3, + "firstIonizationPotential": 670.4, + "oxidationStates": 4, + "electronicConfiguration": "[Rn]5f6d¹7s²", + "latticeStructure": "FCC", + "latticeConstant": 5.08 + }, + "Protactinium": { + "symbol": "Pa", + "atomicNumber": 91, + "atomicWeight": 231.03588, + "density": 15.37, + "meltingPoint": 2113, + "boilingPoint": 4300, + "atomicRadius": 161, + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": 15, + "specificHeat": 0.121, + "fusionHeat": 16.7, + "evaporationHeat": 481.2, + "thermalConductivity": "-", + "paulingNegativity": 1.5, + "firstIonizationPotential": "n/a", + "oxidationStates": "5, 4", + "electronicConfiguration": "[Rn]5f²6d¹7s²", + "latticeStructure": "TET", + "latticeConstant": 3.92 + }, + "Uranium": { + "symbol": "U", + "atomicNumber": 92, + "atomicWeight": 238.0289, + "density": 19.05, + "meltingPoint": 1405.5, + "boilingPoint": 4018, + "atomicRadius": 138, + "covalentRadius": 142, + "ionicRadius": "", + "atomicVolume": 12.5, + "specificHeat": 0.115, + "fusionHeat": 12.6, + "evaporationHeat": 417, + "thermalConductivity": 27.5, + "paulingNegativity": 1.38, + "firstIonizationPotential": 686.4, + "oxidationStates": "6, 5, 4, 3", + "electronicConfiguration": "[Rn]5f³6d¹7s²", + "latticeStructure": "ORC", + "latticeConstant": 2.85 + }, + "Neptunium": { + "symbol": "Np", + "atomicNumber": 93, + "atomicWeight": 237.048, + "density": 20.25, + "meltingPoint": 913, + "boilingPoint": 4175, + "atomicRadius": 130, + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": 21.1, + "specificHeat": "-", + "fusionHeat": "(9.6)", + "evaporationHeat": 336, + "thermalConductivity": "(6.3)", + "paulingNegativity": 1.36, + "firstIonizationPotential": "n/a", + "oxidationStates": "6, 5, 4, 3", + "electronicConfiguration": "[Rn]5f6d¹7s²", + "latticeStructure": "ORC", + "latticeConstant": 4.72 + }, + "Plutonium": { + "symbol": "Pu", + "atomicNumber": 94, + "atomicWeight": 244.0642, + "density": 19.84, + "meltingPoint": 914, + "boilingPoint": 3505, + "atomicRadius": 151, + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": "-", + "specificHeat": "-", + "fusionHeat": 2.8, + "evaporationHeat": 343.5, + "thermalConductivity": "(6.7)", + "paulingNegativity": 1.28, + "firstIonizationPotential": 491.9, + "oxidationStates": "6, 5, 4, 3", + "electronicConfiguration": "[Rn]5f6d7s²", + "latticeStructure": "MCL", + "latticeConstant": "n/a" + }, + "Americium": { + "symbol": "Am", + "atomicNumber": 95, + "atomicWeight": 243.0614, + "density": 13.67, + "meltingPoint": 1267, + "boilingPoint": 2880, + "atomicRadius": 173, + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": 20.8, + "specificHeat": "-", + "fusionHeat": "(10.0)", + "evaporationHeat": 238.5, + "thermalConductivity": "-", + "paulingNegativity": 1.3, + "firstIonizationPotential": "n/a", + "oxidationStates": "6, 5, 4, 3", + "electronicConfiguration": "[Rn]5f6d7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Curium": { + "symbol": "Cm", + "atomicNumber": 96, + "atomicWeight": 247.0703, + "density": 13.51, + "meltingPoint": 1340, + "boilingPoint": "n/a", + "atomicRadius": 299, + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": 18.28, + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": 1.3, + "firstIonizationPotential": "(580)", + "oxidationStates": "4, 3", + "electronicConfiguration": "[Rn]5f6d¹7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/A" + }, + "Berkelium": { + "symbol": "Bk", + "atomicNumber": 97, + "atomicWeight": 247.0703, + "density": 13.25, + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": 297, + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": 1.3, + "firstIonizationPotential": "(600)", + "oxidationStates": "4, 3", + "electronicConfiguration": "[Rn]5f6d7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Californium": { + "symbol": "Cf", + "atomicNumber": 98, + "atomicWeight": 251.0796, + "density": 15.1, + "meltingPoint": 900, + "boilingPoint": "n/a", + "atomicRadius": 295, + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": 1.3, + "firstIonizationPotential": "(610)", + "oxidationStates": "4, 3", + "electronicConfiguration": "[Rn]5f¹6d7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Einsteinium": { + "symbol": "Es", + "atomicNumber": 99, + "atomicWeight": 252.083, + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": 1130, + "atomicRadius": 292, + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": 1.3, + "firstIonizationPotential": "(620)", + "oxidationStates": 3, + "electronicConfiguration": "[Rn]5f¹¹6d7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Fermium": { + "symbol": "Fm", + "atomicNumber": 100, + "atomicWeight": 257.0951, + "density": "n/a", + "meltingPoint": 1800, + "boilingPoint": "n/a", + "atomicRadius": 290, + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": 1.3, + "firstIonizationPotential": "(630)", + "oxidationStates": 3, + "electronicConfiguration": "[Rn]5f¹²6d7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Mendelevium": { + "symbol": "Md", + "atomicNumber": 101, + "atomicWeight": 258.1, + "density": "n/a", + "meltingPoint": 1100, + "boilingPoint": "n/a", + "atomicRadius": 287, + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": 1.3, + "firstIonizationPotential": "(635)", + "oxidationStates": 3, + "electronicConfiguration": "[Rn]5f¹³6d7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Nobelium": { + "symbol": "No", + "atomicNumber": 102, + "atomicWeight": 259.1009, + "density": "n/a", + "meltingPoint": 1100, + "boilingPoint": "n/a", + "atomicRadius": 285, + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": 1.3, + "firstIonizationPotential": "(640)", + "oxidationStates": "3,2", + "electronicConfiguration": "[Rn]5f¹6d7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Lawrencium": { + "symbol": "Lr", + "atomicNumber": 103, + "atomicWeight": 262.11, + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": 282, + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": 3, + "electronicConfiguration": "[Rn]5f¹6d¹7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Rutherfordium": { + "symbol": "Rf", + "atomicNumber": 104, + "atomicWeight": "[261]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "-", + "electronicConfiguration": "[Rn]5f¹6d²7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Dubnium": { + "symbol": "Db", + "atomicNumber": 105, + "atomicWeight": "[262]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "-", + "electronicConfiguration": "[Rn]5f¹6d³6s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Seaborgium": { + "symbol": "Sg", + "atomicNumber": 106, + "atomicWeight": "[266]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "-", + "electronicConfiguration": "[Rn]5f¹6d¹7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Bohrium": { + "symbol": "Bh", + "atomicNumber": 107, + "atomicWeight": "[264]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Hassium": { + "name": "Hassium", + "symbol": "Hs", + "atomicNumber": 108, + "atomicWeight": "[269]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Meitnerium": { + "name": "Meitnerium", + "symbol": "Mt", + "atomicNumber": 109, + "atomicWeight": "[268]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Ununnilium": { + "name": "Ununnilium", + "symbol": "Uun", + "atomicNumber": 110, + "atomicWeight": "[269]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Unununium": { + "name": "Unununium", + "symbol": "Uuu", + "atomicNumber": 111, + "atomicWeight": "[272]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Ununbium": { + "name": "Ununbium", + "symbol": "Uub", + "atomicNumber": 112, + "atomicWeight": "[277]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Ununtrium": { + "name": "Ununtrium", + "symbol": "Uut", + "atomicNumber": 113, + "atomicWeight": "n/a", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Ununquadium": { + "name": "Ununquadium", + "symbol": "Uuq", + "atomicNumber": 114, + "atomicWeight": "[289]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Ununpentium": { + "name": "Ununpentium", + "symbol": "Uup", + "atomicNumber": 115, + "atomicWeight": "n/a", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Ununhexium": { + "name": "Ununhexium", + "symbol": "Uuh", + "atomicNumber": 116, + "atomicWeight": "n/a", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Ununseptium": { + "name": "Ununseptium", + "symbol": "Uus", + "atomicNumber": 117, + "atomicWeight": "n/a", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + "Ununoctium": { + "name": "Ununoctium", + "symbol": "Uuo", + "atomicNumber": 118, + "atomicWeight": "n/a", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + } +} diff --git a/example/material/primary/chemical.json b/example/material/primary/chemical.json index 239ad530a..3b6624485 100644 --- a/example/material/primary/chemical.json +++ b/example/material/primary/chemical.json @@ -1,20 +1,10 @@ { - "electronAffinity":[ - [ - 1.39 - ] - ], - "ionizationPotential":[ - [ - 8.15 - ] - ], - "coordNumber":[ + "coordinationNumber":[ [ 0 ] ], - "localEnv":[ + "localEnvironment":[ [ 5 ] diff --git a/example/material/primary/electronic.json b/example/material/primary/electronic.json index 6ec437765..85b38bfb1 100644 --- a/example/material/primary/electronic.json +++ b/example/material/primary/electronic.json @@ -1,10 +1,10 @@ { - "spin":[ + "elementSpinStates":[ [ 0 ] ], - "valOrbOcc":[ + "valenceOrbitalOccupancy":[ [ 0.5, 0.5, diff --git a/example/material/primary/physical.json b/example/material/primary/physical.json deleted file mode 100644 index fe2be1edb..000000000 --- a/example/material/primary/physical.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "elements":[ - "Si" - ], - "oxidationState":[ - [ - 0 - ] - ], - "aradii":[ - [ - 0.110 - ] - ], - "iradii": [ - [ - 0.110 - ] - ], - "group":[ - [ - [ - 3, - 14 - ] - ] - ] - -} diff --git a/example/material/primary/primary.json b/example/material/primary/primary.json index 3c7dca9cb..66185c247 100644 --- a/example/material/primary/primary.json +++ b/example/material/primary/primary.json @@ -2,9 +2,6 @@ "stoichiometric":{ "...": "include(stoichiometric.json)" }, - "physical": { - "...": "include(physical.json)" - }, "structural": { "...": "include(structural.json)" }, diff --git a/example/material/primary/stoichiometric.json b/example/material/primary/stoichiometric.json index 7bfbab1b1..6485c191d 100644 --- a/example/material/primary/stoichiometric.json +++ b/example/material/primary/stoichiometric.json @@ -1,10 +1,7 @@ { - "pnorm":[ - [ - 1.0, - 1.0, - 1.0 - - ] - ] + "pnorm": { + "p0": 1.0, + "p2": 1.0, + "p5": 1.0 + } } diff --git a/example/material/primary/structural.json b/example/material/primary/structural.json index 676ccae46..a039a1085 100644 --- a/example/material/primary/structural.json +++ b/example/material/primary/structural.json @@ -1,7 +1,7 @@ { - "type": "CUB", - "representation": "0", - "equilibrium": "0", - "matType": "0", - "vatom": 0.15 + "latticeType": "CUB", + "representation": "primitive", + "equilibrium": "Yes", + "materialType": "crystal", + "volPerAtom": 0.15 } diff --git a/example/material/structure/lattice.json b/example/material/structure/lattice.json index df52f2b8a..559ce5851 100644 --- a/example/material/structure/lattice.json +++ b/example/material/structure/lattice.json @@ -1,5 +1,5 @@ { - "type": "CUB", + "latticeType": "CUB", "name": "lattice", "a": 5.00, "b": 5.00, diff --git a/example/material/structure/lattice_type.json b/example/material/structure/lattice_type.json index 36b54d288..1b0e139af 100644 --- a/example/material/structure/lattice_type.json +++ b/example/material/structure/lattice_type.json @@ -1,3 +1,3 @@ { - "type": "CUB" + "latticeType": "CUB" } diff --git a/schema/material/elements/_element.json b/schema/material/elements/_element.json new file mode 100644 index 000000000..b7a1d2207 --- /dev/null +++ b/schema/material/elements/_element.json @@ -0,0 +1,84 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "elemental properties schema", + "properties": { + "symbol": { + "description": "element symbol", + "type": "string" + }, + "atomicNumber": { + "type": "number" + }, + "atomicWeight": { + "description": "atomic mass in a.u", + "type": "number" + }, + "density": { + "description": "density of elemental crystal. Units: g/cm3", + "type": "number" + }, + "meltingPoint": { + "description": "melting point of elemental crystal. Units: K", + "type": "number" + }, + "boilingPoint": { + "description": "boiling point of elemental crystal. Units: K", + "type": "number" + }, + "atomicRadius": { + "description": "atomic radius. Units: pm", + "type": "number" + }, + "covalentRadius": { + "description": "calculated atomic radius in covalently bonded crystal environments. Units: pm", + "type": "number" + }, + "ionicRadius": { + "description": "measured ionic radius. Units: pm", + "type": "number" + }, + "atomicVolume": { + "description": "normalized volume per atom in elemental crystal. Units: cm**3/mol", + "type": "number" + }, + "specificHeat": { + "description": "specific heat at constant volume (Cv). Units: J/g/mol", + "type": "number" + }, + "fusionHeat": { + "description": "Heat of Fusion. Units: kJ/mol", + "type": "number" + }, + "evaporationHeat": { + "description": "Heat of Evaporation or Sublimation. Units: kJ/mol", + "type": "number" + }, + "thermalConductivity": { + "description": "Thermal conductivity. Units: W/m/K at 25degC", + "type": "number" + }, + "paulingNegativity": { + "description": "Pauling's electronegativity", + "type": "number" + }, + "firstIonizationPotential": { + "description": "Ionization energy from 0 to +1 oxidation state. Units: kJ/mol", + "type": "number" + }, + "oxidationStates": { + "description": "List of oxidation states", + "type": "string" + }, + "electronicConfiguration": { + "type": "string" + }, + "latticeStructure": { + "description": "bravais lattice type of elemental crystal", + "type": "string" + }, + "latticeConstant": { + "description": "lattice constant of elemental crystal", + "type": "number" + } + } +} diff --git a/schema/material/elements/elements.json b/schema/material/elements/elements.json new file mode 100644 index 000000000..bcb170e44 --- /dev/null +++ b/schema/material/elements/elements.json @@ -0,0 +1,10 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "elemental properties collection schema", + "properties": { + "element": { + "description": "collection of properties for each element", + "$ref": "file:_element.json" + } + } +} diff --git a/schema/material/primary/physical.json b/schema/material/primary/physical.json deleted file mode 100644 index 3b71a3b02..000000000 --- a/schema/material/primary/physical.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "physical descriptors schema", - "properties": { - "elements": { - "description": " Element symbols of unique elements in the material", - "ref": "file:../../primitive/1d_data_series.json" - }, - "oxidationState": { - "description": "Array with average oxidation state of unique element type", - "$ref": "file:../../primitive/1d_data_series.json" - }, - "aradii": { - "description": "atomic radii of all elements in nm", - "$ref": "file:../../primitive/1d_data_series.json" - }, - "iradii": { - "description": "ionic radii of all elements. Ionic radii depend on oxidation states of elements", - "$ref": "file:../../primitive/1d_data_series.json" - }, - "group": { - "description": "Position in the periodic table. Array of arrays with period and group in the periodic table for all elements", - "type":"array", - "items":{ - "$ref": "file:../../primitive/1d_data_series.json" - } - } - } -} From 2f1b7b0a77c122ac480064a1fbb12071f5895304 Mon Sep 17 00:00:00 2001 From: Phani Date: Wed, 10 May 2017 11:41:37 -0700 Subject: [PATCH 38/63] refactored JSON schema for material fingerprints --- example/material/elemental/elements.json | 2600 ++++++++++++++++ example/material/elements/elements.json | 2609 ----------------- example/material/fingerprint.json | 2 +- example/material/fingerprint/primary.json | 17 + .../{ => fingerprint}/primary/chemical.json | 5 +- .../{ => fingerprint}/primary/electronic.json | 4 +- .../fingerprint/primary/stoichiometric.json | 7 + .../{ => fingerprint}/primary/structural.json | 4 +- example/material/primary/primary.json | 14 - example/material/primary/stoichiometric.json | 7 - example/material/structure/lattice.json | 2 +- example/material/structure/lattice_type.json | 2 +- .../{elements => elemental}/_element.json | 92 +- schema/material/elemental/elements.json | 14 + schema/material/elements/elements.json | 10 - schema/material/fingerprint.json | 2 +- .../{primary => fingerprint}/primary.json | 20 +- .../fingerprint/primary/chemical.json | 14 + .../fingerprint/primary/electronic.json | 18 + .../primary/stoichiometric.json | 4 +- .../fingerprint/primary/structural.json | 42 + schema/material/primary/chemical.json | 22 - schema/material/primary/electronic.json | 18 - schema/material/primary/structural.json | 27 - 24 files changed, 2784 insertions(+), 2772 deletions(-) create mode 100644 example/material/elemental/elements.json delete mode 100644 example/material/elements/elements.json create mode 100644 example/material/fingerprint/primary.json rename example/material/{ => fingerprint}/primary/chemical.json (61%) rename example/material/{ => fingerprint}/primary/electronic.json (69%) create mode 100644 example/material/fingerprint/primary/stoichiometric.json rename example/material/{ => fingerprint}/primary/structural.json (66%) delete mode 100644 example/material/primary/primary.json delete mode 100644 example/material/primary/stoichiometric.json rename schema/material/{elements => elemental}/_element.json (79%) create mode 100644 schema/material/elemental/elements.json delete mode 100644 schema/material/elements/elements.json rename schema/material/{primary => fingerprint}/primary.json (64%) create mode 100644 schema/material/fingerprint/primary/chemical.json create mode 100644 schema/material/fingerprint/primary/electronic.json rename schema/material/{ => fingerprint}/primary/stoichiometric.json (74%) create mode 100644 schema/material/fingerprint/primary/structural.json delete mode 100644 schema/material/primary/chemical.json delete mode 100644 schema/material/primary/electronic.json delete mode 100644 schema/material/primary/structural.json diff --git a/example/material/elemental/elements.json b/example/material/elemental/elements.json new file mode 100644 index 000000000..e11d57991 --- /dev/null +++ b/example/material/elemental/elements.json @@ -0,0 +1,2600 @@ +{ + "elements": [ + { + "symbol": "H", + "atomicNumber": 1, + "atomicWeight": 1.00794, + "density": "0.0708 (@ -253°C)", + "meltingPoint": 14.01, + "boilingPoint": 20.28, + "atomicRadius": 79, + "covalentRadius": 32, + "ionicRadius": "", + "atomicVolume": 14.1, + "specificHeat": "14.267 (H-H)", + "fusionHeat": "0.117 (H-H)", + "evaporationHeat": "0.904 (H-H)", + "thermalConductivity": 0.1815, + "paulingNegativity": 2.2, + "firstIonizationPotential": 1311.3, + "oxidationStates": "1, -1", + "electronicConfiguration": "1s¹", + "latticeStructure": "HEX", + "latticeConstant": 3.75 + }, + { + "symbol": "He", + "atomicNumber": 2, + "atomicWeight": 4.002602, + "density": "0.147 (@ -270°C)", + "meltingPoint": 0.95, + "boilingPoint": 4.216, + "atomicRadius": 0, + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": 31.8, + "specificHeat": 5.188, + "fusionHeat": "-", + "evaporationHeat": 0.08, + "thermalConductivity": 0.152, + "paulingNegativity": "-", + "firstIonizationPotential": 2361.3, + "oxidationStates": "-", + "electronicConfiguration": "1s²", + "latticeStructure": "HEX", + "latticeConstant": 3.57 + }, + { + "symbol": "Li", + "atomicNumber": 3, + "atomicWeight": 6.941, + "density": 0.534, + "meltingPoint": 553.69, + "boilingPoint": 1118.15, + "atomicRadius": 155, + "covalentRadius": 163, + "ionicRadius": "", + "atomicVolume": 13.1, + "specificHeat": 3.489, + "fusionHeat": 2.89, + "evaporationHeat": 148, + "thermalConductivity": 84.8, + "paulingNegativity": 0.98, + "firstIonizationPotential": 519.9, + "oxidationStates": 1, + "electronicConfiguration": "[He]2s¹", + "latticeStructure": "BCC", + "latticeConstant": 3.49 + }, + { + "symbol": "Be", + "atomicNumber": 4, + "atomicWeight": 9.01218, + "density": 1.848, + "meltingPoint": 1551, + "boilingPoint": 3243, + "atomicRadius": 112, + "covalentRadius": 90, + "ionicRadius": "", + "atomicVolume": 5, + "specificHeat": 1.824, + "fusionHeat": 12.21, + "evaporationHeat": 309, + "thermalConductivity": 201, + "paulingNegativity": 1.57, + "firstIonizationPotential": 898.8, + "oxidationStates": 2, + "electronicConfiguration": "[He]2s²", + "latticeStructure": "HEX", + "latticeConstant": 2.29 + }, + { + "symbol": "B", + "atomicNumber": 5, + "atomicWeight": 10.811, + "density": 2.34, + "meltingPoint": 2573, + "boilingPoint": 3931, + "atomicRadius": 98, + "covalentRadius": 82, + "ionicRadius": "", + "atomicVolume": 4.6, + "specificHeat": 1.025, + "fusionHeat": 23.6, + "evaporationHeat": 504.5, + "thermalConductivity": 27.4, + "paulingNegativity": 2.04, + "firstIonizationPotential": 800.2, + "oxidationStates": 3, + "electronicConfiguration": "[He]2s²2p¹", + "latticeStructure": "TET", + "latticeConstant": 8.73 + }, + { + "symbol": "C", + "atomicNumber": 6, + "atomicWeight": 12.011, + "density": "2.25 (graphite)", + "meltingPoint": 3820, + "boilingPoint": 5100, + "atomicRadius": 91, + "covalentRadius": 77, + "ionicRadius": "", + "atomicVolume": 5.3, + "specificHeat": 0.711, + "fusionHeat": "-", + "evaporationHeat": "-", + "thermalConductivity": 1.59, + "paulingNegativity": 2.55, + "firstIonizationPotential": 1085.7, + "oxidationStates": "4, 2, -4", + "electronicConfiguration": "[He]2s²2p²", + "latticeStructure": "DIA", + "latticeConstant": 3.57 + }, + { + "symbol": "N", + "atomicNumber": 7, + "atomicWeight": 14.00674, + "density": "0.808 (@ -195.8°C)", + "meltingPoint": 63.29, + "boilingPoint": 77.4, + "atomicRadius": 92, + "covalentRadius": 75, + "ionicRadius": "", + "atomicVolume": 17.3, + "specificHeat": "1.042 (N-N)", + "fusionHeat": "-", + "evaporationHeat": "-", + "thermalConductivity": 0.026, + "paulingNegativity": 3.04, + "firstIonizationPotential": 1401.5, + "oxidationStates": "5, 4, 3, 2, -3", + "electronicConfiguration": "[He]2s²2p³", + "latticeStructure": "HEX", + "latticeConstant": 4.039 + }, + { + "symbol": "O", + "atomicNumber": 8, + "atomicWeight": 15.9994, + "density": "1.149 (@ -183°C)", + "meltingPoint": 54.8, + "boilingPoint": 90.19, + "atomicRadius": "-", + "covalentRadius": 73, + "ionicRadius": "", + "atomicVolume": 14, + "specificHeat": "0.916 (O-O)", + "fusionHeat": "-", + "evaporationHeat": "-", + "thermalConductivity": 0.027, + "paulingNegativity": 3.44, + "firstIonizationPotential": 1313.1, + "oxidationStates": "-2, -1", + "electronicConfiguration": "[He]2s²2p", + "latticeStructure": "CUB", + "latticeConstant": 6.83 + }, + { + "symbol": "F", + "atomicNumber": 9, + "atomicWeight": 18.998403, + "density": "1.108 (@ -189°C)", + "meltingPoint": 53.53, + "boilingPoint": 85.01, + "atomicRadius": "-", + "covalentRadius": 72, + "ionicRadius": "", + "atomicVolume": 17.1, + "specificHeat": "0.824 (F-F)", + "fusionHeat": "0.51 (F-F)", + "evaporationHeat": "6.54 (F-F)", + "thermalConductivity": 0.028, + "paulingNegativity": 3.98, + "firstIonizationPotential": 1680, + "oxidationStates": -1, + "electronicConfiguration": "[He]2s²2p", + "latticeStructure": "MCL", + "latticeConstant": "-" + }, + { + "symbol": "Ne", + "atomicNumber": 10, + "atomicWeight": 20.1797, + "density": "1.204 (@ -246°C)", + "meltingPoint": 48, + "boilingPoint": 27.1, + "atomicRadius": "-", + "covalentRadius": 71, + "ionicRadius": "", + "atomicVolume": 16.8, + "specificHeat": 1.029, + "fusionHeat": "-", + "evaporationHeat": 1.74, + "thermalConductivity": "(0.0493)", + "paulingNegativity": 0, + "firstIonizationPotential": 2079.4, + "oxidationStates": "-", + "electronicConfiguration": "[He]2s²2p", + "latticeStructure": "FCC", + "latticeConstant": 4.43 + }, + { + "symbol": "Na", + "atomicNumber": 11, + "atomicWeight": 22.989768, + "density": 0.971, + "meltingPoint": 370.96, + "boilingPoint": 1156.1, + "atomicRadius": 190, + "covalentRadius": 154, + "ionicRadius": "", + "atomicVolume": 23.7, + "specificHeat": 1.222, + "fusionHeat": 2.64, + "evaporationHeat": 97.9, + "thermalConductivity": 142, + "paulingNegativity": 0.93, + "firstIonizationPotential": 495.6, + "oxidationStates": 1, + "electronicConfiguration": "[Ne]3s¹", + "latticeStructure": "BCC", + "latticeConstant": 4.23 + }, + { + "symbol": "Mg", + "atomicNumber": 12, + "atomicWeight": 24.305, + "density": 1.738, + "meltingPoint": 922, + "boilingPoint": 1363, + "atomicRadius": 160, + "covalentRadius": 136, + "ionicRadius": "", + "atomicVolume": 14, + "specificHeat": 1.025, + "fusionHeat": 9.2, + "evaporationHeat": 131.8, + "thermalConductivity": 156, + "paulingNegativity": 1.31, + "firstIonizationPotential": 737.3, + "oxidationStates": 2, + "electronicConfiguration": "[Ne]3s²", + "latticeStructure": "HEX", + "latticeConstant": 3.21 + }, + { + "symbol": "Al", + "atomicNumber": 13, + "atomicWeight": 26.981539, + "density": 2.6989, + "meltingPoint": 933.5, + "boilingPoint": 2740, + "atomicRadius": 143, + "covalentRadius": 118, + "ionicRadius": "", + "atomicVolume": 10, + "specificHeat": 0.9, + "fusionHeat": 10.75, + "evaporationHeat": 284.1, + "thermalConductivity": 237, + "paulingNegativity": 1.61, + "firstIonizationPotential": 577.2, + "oxidationStates": 3, + "electronicConfiguration": "[Ne]3s²3p¹", + "latticeStructure": "FCC", + "latticeConstant": 4.05 + }, + { + "symbol": "Si", + "atomicNumber": 14, + "atomicWeight": 28.0855, + "density": 2.33, + "meltingPoint": 1683, + "boilingPoint": 2628, + "atomicRadius": 132, + "covalentRadius": 111, + "ionicRadius": "", + "atomicVolume": 12.1, + "specificHeat": 0.703, + "fusionHeat": 50.6, + "evaporationHeat": 383, + "thermalConductivity": 149, + "paulingNegativity": 1.9, + "firstIonizationPotential": 786, + "oxidationStates": "4, -4", + "electronicConfiguration": "[Ne]3s²3p²", + "latticeStructure": "DIA", + "latticeConstant": 5.43 + }, + { + "symbol": "P", + "atomicNumber": 15, + "atomicWeight": 30.973762, + "density": "1.82 (white phosphorus)", + "meltingPoint": 317.3, + "boilingPoint": 553, + "atomicRadius": 128, + "covalentRadius": 106, + "ionicRadius": "", + "atomicVolume": 17, + "specificHeat": 0.757, + "fusionHeat": 2.51, + "evaporationHeat": 49.8, + "thermalConductivity": "(0.236)", + "paulingNegativity": 2.19, + "firstIonizationPotential": 1011.2, + "oxidationStates": "5, 3, -3", + "electronicConfiguration": "[Ne]3s²3p³", + "latticeStructure": "CUB", + "latticeConstant": 7.17 + }, + { + "symbol": "S", + "atomicNumber": 16, + "atomicWeight": 32.066, + "density": 2.07, + "meltingPoint": 386, + "boilingPoint": 717.824, + "atomicRadius": 127, + "covalentRadius": 102, + "ionicRadius": "", + "atomicVolume": 15.5, + "specificHeat": 0.732, + "fusionHeat": 1.23, + "evaporationHeat": 10.5, + "thermalConductivity": 0.27, + "paulingNegativity": 2.58, + "firstIonizationPotential": 999, + "oxidationStates": "6, 4, 2, -2", + "electronicConfiguration": "[Ne]3s²3p", + "latticeStructure": "ORC", + "latticeConstant": 10.47 + }, + { + "symbol": "Cl", + "atomicNumber": 17, + "atomicWeight": 35.4527, + "density": "1.56 (@ -33.6°C)", + "meltingPoint": 172.2, + "boilingPoint": 238.6, + "atomicRadius": "-", + "covalentRadius": 99, + "ionicRadius": "", + "atomicVolume": 18.7, + "specificHeat": "0.477 (Cl-Cl)", + "fusionHeat": "6.41 (Cl-Cl)", + "evaporationHeat": "20.41 (Cl-Cl)", + "thermalConductivity": 0.009, + "paulingNegativity": 3.16, + "firstIonizationPotential": 1254.9, + "oxidationStates": "7, 5, 3, 1, -1", + "electronicConfiguration": "[Ne]3s²3p", + "latticeStructure": "ORC", + "latticeConstant": 6.24 + }, + { + "symbol": "Ar", + "atomicNumber": 18, + "atomicWeight": 39.948, + "density": "1.40 (@ -186°C)", + "meltingPoint": 83.8, + "boilingPoint": 87.3, + "atomicRadius": "2-", + "covalentRadius": 98, + "ionicRadius": "", + "atomicVolume": 24.2, + "specificHeat": 0.138, + "fusionHeat": "-", + "evaporationHeat": 6.52, + "thermalConductivity": 0.0177, + "paulingNegativity": 0, + "firstIonizationPotential": 1519.6, + "oxidationStates": "-", + "electronicConfiguration": "[Ne]3s²3p", + "latticeStructure": "FCC", + "latticeConstant": 5.26 + }, + { + "symbol": "K", + "atomicNumber": 19, + "atomicWeight": 39.0983, + "density": 0.856, + "meltingPoint": 336.8, + "boilingPoint": 1047, + "atomicRadius": 235, + "covalentRadius": 203, + "ionicRadius": "", + "atomicVolume": 45.3, + "specificHeat": 0.753, + "fusionHeat": 102.5, + "evaporationHeat": 2.33, + "thermalConductivity": 79, + "paulingNegativity": 0.82, + "firstIonizationPotential": 418.5, + "oxidationStates": 1, + "electronicConfiguration": "[Ar]4s¹", + "latticeStructure": "BCC", + "latticeConstant": 5.23 + }, + { + "symbol": "Ca", + "atomicNumber": 20, + "atomicWeight": 40.078, + "density": 1.55, + "meltingPoint": 1112, + "boilingPoint": 1757, + "atomicRadius": 197, + "covalentRadius": 174, + "ionicRadius": "", + "atomicVolume": 29.9, + "specificHeat": 0.653, + "fusionHeat": 9.2, + "evaporationHeat": 153.6, + "thermalConductivity": "(201)", + "paulingNegativity": 1, + "firstIonizationPotential": 589.4, + "oxidationStates": 2, + "electronicConfiguration": "[Ar]4s²", + "latticeStructure": "FCC", + "latticeConstant": 5.58 + }, + { + "symbol": "Sc", + "atomicNumber": 21, + "atomicWeight": 44.95591, + "density": 2.99, + "meltingPoint": 1814, + "boilingPoint": 3104, + "atomicRadius": 162, + "covalentRadius": 144, + "ionicRadius": "", + "atomicVolume": 15, + "specificHeat": 0.556, + "fusionHeat": 15.8, + "evaporationHeat": 332.7, + "thermalConductivity": 15.8, + "paulingNegativity": 1.36, + "firstIonizationPotential": 630.8, + "oxidationStates": 3, + "electronicConfiguration": "[Ar]3d¹4s²", + "latticeStructure": "HEX", + "latticeConstant": 3.31 + }, + { + "symbol": "Ti", + "atomicNumber": 22, + "atomicWeight": 47.88, + "density": 4.54, + "meltingPoint": 1933, + "boilingPoint": 3560, + "atomicRadius": 147, + "covalentRadius": 132, + "ionicRadius": "", + "atomicVolume": 10.6, + "specificHeat": 0.523, + "fusionHeat": 18.8, + "evaporationHeat": 422.6, + "thermalConductivity": 21.9, + "paulingNegativity": 1.54, + "firstIonizationPotential": 657.8, + "oxidationStates": "4, 3", + "electronicConfiguration": "[Ar]3d²4s²", + "latticeStructure": "HEX", + "latticeConstant": 2.95 + }, + { + "symbol": "V", + "atomicNumber": 23, + "atomicWeight": 50.9415, + "density": 6.11, + "meltingPoint": 2160, + "boilingPoint": 3650, + "atomicRadius": 134, + "covalentRadius": 122, + "ionicRadius": "", + "atomicVolume": 8.35, + "specificHeat": 0.485, + "fusionHeat": 17.5, + "evaporationHeat": 460, + "thermalConductivity": 30.7, + "paulingNegativity": 1.63, + "firstIonizationPotential": 650.1, + "oxidationStates": "5, 4, 3, 2, 0", + "electronicConfiguration": "[Ar]3d³4s²", + "latticeStructure": "BCC", + "latticeConstant": 3.02 + }, + { + "symbol": "Cr", + "atomicNumber": 24, + "atomicWeight": 51.9961, + "density": 7.18, + "meltingPoint": 2130, + "boilingPoint": 2945, + "atomicRadius": 130, + "covalentRadius": 118, + "ionicRadius": "", + "atomicVolume": 7.23, + "specificHeat": 0.488, + "fusionHeat": 21, + "evaporationHeat": 342, + "thermalConductivity": 93.9, + "paulingNegativity": 1.66, + "firstIonizationPotential": 652.4, + "oxidationStates": "6, 3, 2, 0", + "electronicConfiguration": "[Ar]3d4s¹", + "latticeStructure": "BCC", + "latticeConstant": 2.88 + }, + { + "symbol": "Mn", + "atomicNumber": 25, + "atomicWeight": 54.93805, + "density": 7.21, + "meltingPoint": 1517, + "boilingPoint": 2235, + "atomicRadius": 135, + "covalentRadius": 117, + "ionicRadius": "", + "atomicVolume": 7.39, + "specificHeat": 0.477, + "fusionHeat": "(13.4)", + "evaporationHeat": 221, + "thermalConductivity": "(7.8)", + "paulingNegativity": 1.55, + "firstIonizationPotential": 716.8, + "oxidationStates": "7, 6, 4, 3, 2, 0, -1", + "electronicConfiguration": "[Ar]3d4s²", + "latticeStructure": "CUB", + "latticeConstant": 8.89 + }, + { + "symbol": "Fe", + "atomicNumber": 26, + "atomicWeight": 55.847, + "density": 7.874, + "meltingPoint": 1808, + "boilingPoint": 3023, + "atomicRadius": 126, + "covalentRadius": 117, + "ionicRadius": "", + "atomicVolume": 7.1, + "specificHeat": 0.443, + "fusionHeat": 13.8, + "evaporationHeat": "~340", + "thermalConductivity": 80.4, + "paulingNegativity": 1.83, + "firstIonizationPotential": 759.1, + "oxidationStates": "6, 3, 2, 0, -2", + "electronicConfiguration": "[Ar]3d4s²", + "latticeStructure": "BCC", + "latticeConstant": 2.87 + }, + { + "symbol": "Co", + "atomicNumber": 27, + "atomicWeight": 58.9332, + "density": 8.9, + "meltingPoint": 1768, + "boilingPoint": 3143, + "atomicRadius": 125, + "covalentRadius": 116, + "ionicRadius": "", + "atomicVolume": 6.7, + "specificHeat": 0.456, + "fusionHeat": 15.48, + "evaporationHeat": 389.1, + "thermalConductivity": 100, + "paulingNegativity": 1.88, + "firstIonizationPotential": 758.1, + "oxidationStates": "3, 2, 0, -1", + "electronicConfiguration": "[Ar]3d4s²", + "latticeStructure": "HEX", + "latticeConstant": 2.51 + }, + { + "symbol": "Ni", + "atomicNumber": 28, + "atomicWeight": 58.6934, + "density": 8.902, + "meltingPoint": 1726, + "boilingPoint": 3005, + "atomicRadius": 124, + "covalentRadius": 115, + "ionicRadius": "", + "atomicVolume": 6.6, + "specificHeat": 0.443, + "fusionHeat": 17.61, + "evaporationHeat": 378.6, + "thermalConductivity": 90.9, + "paulingNegativity": 1.91, + "firstIonizationPotential": 736.2, + "oxidationStates": "3, 2, 0", + "electronicConfiguration": "[Ar]3d4s²", + "latticeStructure": "FCC", + "latticeConstant": 3.52 + }, + { + "symbol": "Cu", + "atomicNumber": 29, + "atomicWeight": 63.546, + "density": 8.96, + "meltingPoint": 1356.6, + "boilingPoint": 2840, + "atomicRadius": 128, + "covalentRadius": 117, + "ionicRadius": "", + "atomicVolume": 7.1, + "specificHeat": 0.385, + "fusionHeat": 13.01, + "evaporationHeat": 304.6, + "thermalConductivity": 401, + "paulingNegativity": 1.9, + "firstIonizationPotential": 745, + "oxidationStates": "2, 1", + "electronicConfiguration": "[Ar]3d¹4s¹", + "latticeStructure": "FCC", + "latticeConstant": 3.61 + }, + { + "symbol": "Zn", + "atomicNumber": 30, + "atomicWeight": 65.39, + "density": 7.133, + "meltingPoint": 692.73, + "boilingPoint": 1180, + "atomicRadius": 138, + "covalentRadius": 125, + "ionicRadius": "", + "atomicVolume": 9.2, + "specificHeat": 0.388, + "fusionHeat": 7.28, + "evaporationHeat": 114.8, + "thermalConductivity": 116, + "paulingNegativity": 1.65, + "firstIonizationPotential": 905.8, + "oxidationStates": 2, + "electronicConfiguration": "[Ar]3d¹4s²", + "latticeStructure": "HEX", + "latticeConstant": 2.66 + }, + { + "symbol": "Ga", + "atomicNumber": 31, + "atomicWeight": 69.723, + "density": 5.91, + "meltingPoint": 302.93, + "boilingPoint": 2676, + "atomicRadius": 141, + "covalentRadius": 126, + "ionicRadius": "", + "atomicVolume": 11.8, + "specificHeat": 0.372, + "fusionHeat": 5.59, + "evaporationHeat": 270.3, + "thermalConductivity": 28.1, + "paulingNegativity": 1.81, + "firstIonizationPotential": 578.7, + "oxidationStates": 3, + "electronicConfiguration": "[Ar]3d¹4s²4p¹", + "latticeStructure": "ORC", + "latticeConstant": 4.51 + }, + { + "symbol": "Ge", + "atomicNumber": 32, + "atomicWeight": 72.61, + "density": 5.323, + "meltingPoint": 1210.6, + "boilingPoint": 3103, + "atomicRadius": 137, + "covalentRadius": 122, + "ionicRadius": "", + "atomicVolume": 13.6, + "specificHeat": 0.322, + "fusionHeat": 36.8, + "evaporationHeat": 328, + "thermalConductivity": 60.2, + "paulingNegativity": 2.01, + "firstIonizationPotential": 760, + "oxidationStates": 4, + "electronicConfiguration": "[Ar]3d¹4s²4p²", + "latticeStructure": "DIA", + "latticeConstant": 5.66 + }, + { + "symbol": "As", + "atomicNumber": 33, + "atomicWeight": 74.92159, + "density": "5.73 (grey arsenic)", + "meltingPoint": 1090, + "boilingPoint": 876, + "atomicRadius": 139, + "covalentRadius": 120, + "ionicRadius": "", + "atomicVolume": 13.1, + "specificHeat": 0.328, + "fusionHeat": "-", + "evaporationHeat": 32.4, + "thermalConductivity": "(50.2)", + "paulingNegativity": 2.18, + "firstIonizationPotential": 946.2, + "oxidationStates": "5, 3, -2", + "electronicConfiguration": "[Ar]3d¹4s²4p³", + "latticeStructure": "RHL", + "latticeConstant": 4.13 + }, + { + "symbol": "Se", + "atomicNumber": 34, + "atomicWeight": 78.96, + "density": 4.79, + "meltingPoint": 490, + "boilingPoint": 958.1, + "atomicRadius": 140, + "covalentRadius": 116, + "ionicRadius": "", + "atomicVolume": 16.5, + "specificHeat": "0.321 (Se-Se)", + "fusionHeat": 5.23, + "evaporationHeat": 59.7, + "thermalConductivity": 0.52, + "paulingNegativity": 2.55, + "firstIonizationPotential": 940.4, + "oxidationStates": "6, 4, -2", + "electronicConfiguration": "[Ar]3d¹4s²4p", + "latticeStructure": "HEX", + "latticeConstant": 4.36 + }, + { + "symbol": "Br", + "atomicNumber": 35, + "atomicWeight": 79.904, + "density": 3.12, + "meltingPoint": 265.9, + "boilingPoint": 331.9, + "atomicRadius": "-", + "covalentRadius": 114, + "ionicRadius": "", + "atomicVolume": 23.5, + "specificHeat": "0.473 (Br-Br)", + "fusionHeat": "10.57 (Br-Br)", + "evaporationHeat": "29.56 (Br-Br)", + "thermalConductivity": 0.005, + "paulingNegativity": 2.96, + "firstIonizationPotential": 1142, + "oxidationStates": "7, 5, 3, 1, -1", + "electronicConfiguration": "[Ar]3d¹4s²4p", + "latticeStructure": "ORC", + "latticeConstant": 6.67 + }, + { + "symbol": "Kr", + "atomicNumber": 36, + "atomicWeight": 83.8, + "density": "2.155 (@ -153°C)", + "meltingPoint": 116.6, + "boilingPoint": 120.85, + "atomicRadius": "-", + "covalentRadius": 112, + "ionicRadius": "", + "atomicVolume": 32.2, + "specificHeat": 0.247, + "fusionHeat": "-", + "evaporationHeat": 9.05, + "thermalConductivity": 0.0095, + "paulingNegativity": 0, + "firstIonizationPotential": 1350, + "oxidationStates": 2, + "electronicConfiguration": "[Ar]3d¹4s²4p", + "latticeStructure": "FCC", + "latticeConstant": 5.72 + }, + { + "symbol": "Rb", + "atomicNumber": 37, + "atomicWeight": 85.4678, + "density": 1.532, + "meltingPoint": 312.2, + "boilingPoint": 961, + "atomicRadius": 248, + "covalentRadius": 216, + "ionicRadius": "", + "atomicVolume": 55.9, + "specificHeat": 0.36, + "fusionHeat": 2.2, + "evaporationHeat": 75.8, + "thermalConductivity": 58.2, + "paulingNegativity": 0.82, + "firstIonizationPotential": 402.8, + "oxidationStates": 1, + "electronicConfiguration": "[Kr]5s¹", + "latticeStructure": "BCC", + "latticeConstant": 5.59 + }, + { + "symbol": "Sr", + "atomicNumber": 38, + "atomicWeight": 87.62, + "density": 2.54, + "meltingPoint": 1042, + "boilingPoint": 1657, + "atomicRadius": 215, + "covalentRadius": 191, + "ionicRadius": "", + "atomicVolume": 33.7, + "specificHeat": 0.301, + "fusionHeat": 9.2, + "evaporationHeat": 144, + "thermalConductivity": "(35.4)", + "paulingNegativity": 0.95, + "firstIonizationPotential": 549, + "oxidationStates": 2, + "electronicConfiguration": "[Kr]5s²", + "latticeStructure": "FCC", + "latticeConstant": 6.08 + }, + { + "symbol": "Y", + "atomicNumber": 39, + "atomicWeight": 88.90585, + "density": 4.47, + "meltingPoint": 1795, + "boilingPoint": 3611, + "atomicRadius": 178, + "covalentRadius": 162, + "ionicRadius": "", + "atomicVolume": 19.8, + "specificHeat": 0.284, + "fusionHeat": 11.5, + "evaporationHeat": 367, + "thermalConductivity": "(17.2)", + "paulingNegativity": 1.22, + "firstIonizationPotential": 615.4, + "oxidationStates": 3, + "electronicConfiguration": "[Kr]4d¹5s²", + "latticeStructure": "HEX", + "latticeConstant": 3.65 + }, + { + "symbol": "Zr", + "atomicNumber": 40, + "atomicWeight": 91.224, + "density": 6.506, + "meltingPoint": 2125, + "boilingPoint": 4650, + "atomicRadius": 160, + "covalentRadius": 145, + "ionicRadius": "", + "atomicVolume": 14.1, + "specificHeat": 0.281, + "fusionHeat": 19.2, + "evaporationHeat": 567, + "thermalConductivity": 22.7, + "paulingNegativity": 1.33, + "firstIonizationPotential": 659.7, + "oxidationStates": 4, + "electronicConfiguration": "[Kr]4d²5s²", + "latticeStructure": "HEX", + "latticeConstant": 3.23 + }, + { + "symbol": "Nb", + "atomicNumber": 41, + "atomicWeight": 92.90638, + "density": 8.57, + "meltingPoint": 2741, + "boilingPoint": 5015, + "atomicRadius": 146, + "covalentRadius": 134, + "ionicRadius": "", + "atomicVolume": 10.8, + "specificHeat": 0.268, + "fusionHeat": 26.8, + "evaporationHeat": 680, + "thermalConductivity": 53.7, + "paulingNegativity": 1.6, + "firstIonizationPotential": 663.6, + "oxidationStates": "5, 3", + "electronicConfiguration": "[Kr]4d5s¹", + "latticeStructure": "BCC", + "latticeConstant": 3.3 + }, + { + "symbol": "Mo", + "atomicNumber": 42, + "atomicWeight": 95.94, + "density": 10.22, + "meltingPoint": 2890, + "boilingPoint": 4885, + "atomicRadius": 139, + "covalentRadius": 130, + "ionicRadius": "", + "atomicVolume": 9.4, + "specificHeat": 0.251, + "fusionHeat": 28, + "evaporationHeat": "~590", + "thermalConductivity": "(138)", + "paulingNegativity": 2.16, + "firstIonizationPotential": 684.8, + "oxidationStates": "6, 5, 4, 3, 2, 0", + "electronicConfiguration": "[Kr]4d5s¹", + "latticeStructure": "BCC", + "latticeConstant": 3.15 + }, + { + "symbol": "Tc", + "atomicNumber": 43, + "atomicWeight": 97.9072, + "density": 11.5, + "meltingPoint": 2445, + "boilingPoint": 5150, + "atomicRadius": 136, + "covalentRadius": 127, + "ionicRadius": "", + "atomicVolume": 8.5, + "specificHeat": 0.243, + "fusionHeat": 23.8, + "evaporationHeat": 585, + "thermalConductivity": 50.6, + "paulingNegativity": 1.9, + "firstIonizationPotential": 702.2, + "oxidationStates": 7, + "electronicConfiguration": "[Kr]4d5s¹", + "latticeStructure": "HEX", + "latticeConstant": 2.74 + }, + { + "symbol": "Ru", + "atomicNumber": 44, + "atomicWeight": 101.07, + "density": 12.41, + "meltingPoint": 2583, + "boilingPoint": 4173, + "atomicRadius": 134, + "covalentRadius": 125, + "ionicRadius": "", + "atomicVolume": 8.3, + "specificHeat": 0.238, + "fusionHeat": "(25.5)", + "evaporationHeat": "-", + "thermalConductivity": 117, + "paulingNegativity": 2.2, + "firstIonizationPotential": 710.3, + "oxidationStates": "8, 6, 4, 3, 2, 0, -2", + "electronicConfiguration": "[Kr]4d5s¹", + "latticeStructure": "HEX", + "latticeConstant": 2.7 + }, + { + "symbol": "Rh", + "atomicNumber": 45, + "atomicWeight": 102.9055, + "density": 12.41, + "meltingPoint": 2239, + "boilingPoint": 4000, + "atomicRadius": 134, + "covalentRadius": 125, + "ionicRadius": "", + "atomicVolume": 8.3, + "specificHeat": 0.244, + "fusionHeat": 21.8, + "evaporationHeat": 494, + "thermalConductivity": 150, + "paulingNegativity": 2.28, + "firstIonizationPotential": 719.5, + "oxidationStates": "5, 4, 3, 2, 1, 0", + "electronicConfiguration": "[Kr]4d5s¹", + "latticeStructure": "FCC", + "latticeConstant": 3.8 + }, + { + "symbol": "Pd", + "atomicNumber": 46, + "atomicWeight": 106.42, + "density": 12.02, + "meltingPoint": 1825, + "boilingPoint": 3413, + "atomicRadius": 137, + "covalentRadius": 128, + "ionicRadius": "", + "atomicVolume": 8.9, + "specificHeat": 0.244, + "fusionHeat": 17.24, + "evaporationHeat": 372.4, + "thermalConductivity": 71.8, + "paulingNegativity": 2.2, + "firstIonizationPotential": 803.5, + "oxidationStates": "4, 2, 0", + "electronicConfiguration": "[Kr]4d5s", + "latticeStructure": "FCC", + "latticeConstant": 3.89 + }, + { + "symbol": "Ag", + "atomicNumber": 47, + "atomicWeight": 107.8682, + "density": 10.5, + "meltingPoint": 1235.1, + "boilingPoint": 2485, + "atomicRadius": 144, + "covalentRadius": 134, + "ionicRadius": "", + "atomicVolume": 10.3, + "specificHeat": 0.237, + "fusionHeat": 11.95, + "evaporationHeat": 254.1, + "thermalConductivity": 429, + "paulingNegativity": 1.93, + "firstIonizationPotential": 730.5, + "oxidationStates": "2, 1", + "electronicConfiguration": "[Kr]4d5s¹", + "latticeStructure": "FCC", + "latticeConstant": 4.09 + }, + { + "symbol": "Cd", + "atomicNumber": 48, + "atomicWeight": 112.411, + "density": 8.65, + "meltingPoint": 594.1, + "boilingPoint": 1038, + "atomicRadius": 154, + "covalentRadius": 148, + "ionicRadius": "", + "atomicVolume": 13.1, + "specificHeat": 0.232, + "fusionHeat": 6.11, + "evaporationHeat": 59.1, + "thermalConductivity": 96.9, + "paulingNegativity": 1.69, + "firstIonizationPotential": 867.2, + "oxidationStates": 2, + "electronicConfiguration": "[Kr]4d5s²", + "latticeStructure": "HEX", + "latticeConstant": 2.98 + }, + { + "symbol": "In", + "atomicNumber": 49, + "atomicWeight": 114.818, + "density": 7.31, + "meltingPoint": 429.32, + "boilingPoint": 2353, + "atomicRadius": 166, + "covalentRadius": 144, + "ionicRadius": "", + "atomicVolume": 15.7, + "specificHeat": 0.234, + "fusionHeat": 3.24, + "evaporationHeat": 225.1, + "thermalConductivity": 81.8, + "paulingNegativity": 1.78, + "firstIonizationPotential": 558, + "oxidationStates": 3, + "electronicConfiguration": "[Kr]4d5s²5p¹", + "latticeStructure": "TET", + "latticeConstant": 4.59 + }, + { + "symbol": "Sn", + "atomicNumber": 50, + "atomicWeight": 118.71, + "density": 7.31, + "meltingPoint": 505.1, + "boilingPoint": 2543, + "atomicRadius": 162, + "covalentRadius": 141, + "ionicRadius": "", + "atomicVolume": 16.3, + "specificHeat": 0.222, + "fusionHeat": 7.07, + "evaporationHeat": 296, + "thermalConductivity": 66.8, + "paulingNegativity": 1.96, + "firstIonizationPotential": 708.2, + "oxidationStates": "4, 2", + "electronicConfiguration": "[Kr]4d5s²5p²", + "latticeStructure": "TET", + "latticeConstant": 5.82 + }, + { + "symbol": "Sb", + "atomicNumber": 51, + "atomicWeight": 121.76, + "density": 6.691, + "meltingPoint": 903.9, + "boilingPoint": 1908, + "atomicRadius": 159, + "covalentRadius": 140, + "ionicRadius": "", + "atomicVolume": 18.4, + "specificHeat": 0.205, + "fusionHeat": 20.08, + "evaporationHeat": 195.2, + "thermalConductivity": 24.43, + "paulingNegativity": 2.05, + "firstIonizationPotential": 833.3, + "oxidationStates": "5, 3, -2", + "electronicConfiguration": "[Kr]4d5s²5p³", + "latticeStructure": "RHL", + "latticeConstant": 4.51 + }, + { + "symbol": "Te", + "atomicNumber": 52, + "atomicWeight": 127.6, + "density": 6.24, + "meltingPoint": 722.7, + "boilingPoint": 1263, + "atomicRadius": 160, + "covalentRadius": 136, + "ionicRadius": "", + "atomicVolume": 20.5, + "specificHeat": 0.201, + "fusionHeat": 17.91, + "evaporationHeat": 49.8, + "thermalConductivity": 14.3, + "paulingNegativity": 2.1, + "firstIonizationPotential": 869, + "oxidationStates": "6, 4, 2", + "electronicConfiguration": "[Kr]4d5s²5p", + "latticeStructure": "HEX", + "latticeConstant": 4.45 + }, + { + "symbol": "I", + "atomicNumber": 53, + "atomicWeight": 126.90447, + "density": 4.93, + "meltingPoint": 386.7, + "boilingPoint": 457.5, + "atomicRadius": "-", + "covalentRadius": 133, + "ionicRadius": "", + "atomicVolume": 25.7, + "specificHeat": "0.427 (I-I)", + "fusionHeat": "15.52 (I-I)", + "evaporationHeat": "41.95 (I-I)", + "thermalConductivity": "(0.45)", + "paulingNegativity": 2.66, + "firstIonizationPotential": 1008.3, + "oxidationStates": "7, 5, 1, -1", + "electronicConfiguration": "[Kr]4d5s²5p", + "latticeStructure": "ORC", + "latticeConstant": 7.72 + }, + { + "symbol": "Xe", + "atomicNumber": 54, + "atomicWeight": 131.29, + "density": "3.52 (@ -109°C)", + "meltingPoint": 161.3, + "boilingPoint": 166.1, + "atomicRadius": "-", + "covalentRadius": 131, + "ionicRadius": "", + "atomicVolume": 42.9, + "specificHeat": 0.158, + "fusionHeat": "-", + "evaporationHeat": 12.65, + "thermalConductivity": 0.0057, + "paulingNegativity": 0, + "firstIonizationPotential": 1170, + "oxidationStates": 7, + "electronicConfiguration": "[Kr]4d5s²5p", + "latticeStructure": "FCC", + "latticeConstant": 6.2 + }, + { + "symbol": "Cs", + "atomicNumber": 55, + "atomicWeight": 132.90543, + "density": 1.873, + "meltingPoint": 301.6, + "boilingPoint": 951.6, + "atomicRadius": 267, + "covalentRadius": 235, + "ionicRadius": "", + "atomicVolume": 70, + "specificHeat": 0.241, + "fusionHeat": 2.09, + "evaporationHeat": 68.3, + "thermalConductivity": 35.9, + "paulingNegativity": 0.79, + "firstIonizationPotential": 375.5, + "oxidationStates": 1, + "electronicConfiguration": "[Xe]6s¹", + "latticeStructure": "BCC", + "latticeConstant": 6.05 + }, + { + "symbol": "Ba", + "atomicNumber": 56, + "atomicWeight": 137.327, + "density": 3.5, + "meltingPoint": 1002, + "boilingPoint": 1910, + "atomicRadius": 222, + "covalentRadius": 198, + "ionicRadius": "", + "atomicVolume": 39, + "specificHeat": 0.192, + "fusionHeat": 7.66, + "evaporationHeat": 142, + "thermalConductivity": "(18.4)", + "paulingNegativity": 0.89, + "firstIonizationPotential": 502.5, + "oxidationStates": 2, + "electronicConfiguration": "[Xe]6s²", + "latticeStructure": "BCC", + "latticeConstant": 5.02 + }, + { + "symbol": "La", + "atomicNumber": 57, + "atomicWeight": 138.9055, + "density": 6.15, + "meltingPoint": 1194, + "boilingPoint": 3730, + "atomicRadius": 187, + "covalentRadius": 169, + "ionicRadius": "", + "atomicVolume": 22.5, + "specificHeat": 0.197, + "fusionHeat": 8.5, + "evaporationHeat": 402, + "thermalConductivity": 13.4, + "paulingNegativity": 1.1, + "firstIonizationPotential": 541.1, + "oxidationStates": 3, + "electronicConfiguration": "[Xe]6d¹6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.75 + }, + { + "symbol": "Ce", + "atomicNumber": 58, + "atomicWeight": 140.115, + "density": 6.757, + "meltingPoint": 1072, + "boilingPoint": 3699, + "atomicRadius": 181, + "covalentRadius": 165, + "ionicRadius": "", + "atomicVolume": 21, + "specificHeat": 0.205, + "fusionHeat": 5.2, + "evaporationHeat": 398, + "thermalConductivity": 11.3, + "paulingNegativity": 1.12, + "firstIonizationPotential": 540.1, + "oxidationStates": "4, 3", + "electronicConfiguration": "[Xe]4f¹5d¹6s²", + "latticeStructure": "FCC", + "latticeConstant": 5.16 + }, + { + "symbol": "Pr", + "atomicNumber": 59, + "atomicWeight": 140.90765, + "density": 6.773, + "meltingPoint": 1204, + "boilingPoint": 3785, + "atomicRadius": 182, + "covalentRadius": 165, + "ionicRadius": "", + "atomicVolume": 20.8, + "specificHeat": 0.192, + "fusionHeat": 11.3, + "evaporationHeat": 331, + "thermalConductivity": 12.5, + "paulingNegativity": 1.13, + "firstIonizationPotential": 526.6, + "oxidationStates": "4, 3", + "electronicConfiguration": "[Xe]4f³5d6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.67 + }, + { + "symbol": "Nd", + "atomicNumber": 60, + "atomicWeight": 144.24, + "density": 7.007, + "meltingPoint": 1294, + "boilingPoint": 3341, + "atomicRadius": 182, + "covalentRadius": 184, + "ionicRadius": "", + "atomicVolume": 20.6, + "specificHeat": 0.205, + "fusionHeat": 7.1, + "evaporationHeat": 289, + "thermalConductivity": "(16.5)", + "paulingNegativity": 1.14, + "firstIonizationPotential": 531.5, + "oxidationStates": 3, + "electronicConfiguration": "[Xe]4f5d6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.66 + }, + { + "symbol": "Pm", + "atomicNumber": 61, + "atomicWeight": 144.9127, + "density": 7.2, + "meltingPoint": 1441, + "boilingPoint": 3000, + "atomicRadius": "-", + "covalentRadius": 163, + "ionicRadius": "", + "atomicVolume": "-", + "specificHeat": 0.185, + "fusionHeat": "-", + "evaporationHeat": "-", + "thermalConductivity": 17.9, + "paulingNegativity": 0, + "firstIonizationPotential": 536, + "oxidationStates": 3, + "electronicConfiguration": "[Xe]4f5d6s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Sm", + "atomicNumber": 62, + "atomicWeight": 150.36, + "density": 7.52, + "meltingPoint": 1350, + "boilingPoint": 2064, + "atomicRadius": 181, + "covalentRadius": 162, + "ionicRadius": "", + "atomicVolume": 19.9, + "specificHeat": 0.18, + "fusionHeat": 8.9, + "evaporationHeat": 165, + "thermalConductivity": "(13.3)", + "paulingNegativity": 1.17, + "firstIonizationPotential": 540.1, + "oxidationStates": "3, 2", + "electronicConfiguration": "[Xe]4f5d6s²", + "latticeStructure": "RHL", + "latticeConstant": 9 + }, + { + "symbol": "Eu", + "atomicNumber": 63, + "atomicWeight": 151.965, + "density": 5.243, + "meltingPoint": 1095, + "boilingPoint": 1870, + "atomicRadius": 199, + "covalentRadius": 185, + "ionicRadius": "", + "atomicVolume": 28.9, + "specificHeat": 0.176, + "fusionHeat": "-", + "evaporationHeat": 176, + "thermalConductivity": 13.9, + "paulingNegativity": 0, + "firstIonizationPotential": 546.9, + "oxidationStates": "3, 2", + "electronicConfiguration": "[Xe]4f5d6s²", + "latticeStructure": "BCC", + "latticeConstant": 4.61 + }, + { + "symbol": "Gd", + "atomicNumber": 64, + "atomicWeight": 157.25, + "density": 7.9, + "meltingPoint": 1586, + "boilingPoint": 3539, + "atomicRadius": 179, + "covalentRadius": 161, + "ionicRadius": "", + "atomicVolume": 19.9, + "specificHeat": 0.23, + "fusionHeat": "-", + "evaporationHeat": 398, + "thermalConductivity": "(10.5)", + "paulingNegativity": 1.2, + "firstIonizationPotential": 594.2, + "oxidationStates": 3, + "electronicConfiguration": "[Xe]4f5d¹6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.64 + }, + { + "symbol": "Tb", + "atomicNumber": 65, + "atomicWeight": 158.92534, + "density": 8.229, + "meltingPoint": 1629, + "boilingPoint": 3296, + "atomicRadius": 180, + "covalentRadius": 159, + "ionicRadius": "", + "atomicVolume": 19.2, + "specificHeat": 0.183, + "fusionHeat": "-", + "evaporationHeat": 389, + "thermalConductivity": 11.1, + "paulingNegativity": 1.2, + "firstIonizationPotential": 569, + "oxidationStates": "4, 3", + "electronicConfiguration": "[Xe]4f5d6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.6 + }, + { + "symbol": "Dy", + "atomicNumber": 66, + "atomicWeight": 162.5, + "density": 8.55, + "meltingPoint": 1685, + "boilingPoint": 2835, + "atomicRadius": 180, + "covalentRadius": 159, + "ionicRadius": "", + "atomicVolume": 19, + "specificHeat": 0.173, + "fusionHeat": "-", + "evaporationHeat": 291, + "thermalConductivity": 10.7, + "paulingNegativity": "-", + "firstIonizationPotential": 567, + "oxidationStates": 3, + "electronicConfiguration": "[Xe]4f5d6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.59 + }, + { + "symbol": "Ho", + "atomicNumber": 67, + "atomicWeight": 164.93032, + "density": 8.795, + "meltingPoint": 1747, + "boilingPoint": 2968, + "atomicRadius": 179, + "covalentRadius": 158, + "ionicRadius": "", + "atomicVolume": 18.7, + "specificHeat": 0.164, + "fusionHeat": "-", + "evaporationHeat": 301, + "thermalConductivity": "(16.2)", + "paulingNegativity": 1.23, + "firstIonizationPotential": 574, + "oxidationStates": 3, + "electronicConfiguration": "[Xe]4f¹¹5d6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.58 + }, + { + "symbol": "Er", + "atomicNumber": 68, + "atomicWeight": 167.26, + "density": 9.06, + "meltingPoint": 1802, + "boilingPoint": 3136, + "atomicRadius": 178, + "covalentRadius": 157, + "ionicRadius": "", + "atomicVolume": 18.4, + "specificHeat": 0.168, + "fusionHeat": "-", + "evaporationHeat": 317, + "thermalConductivity": "(14.5)", + "paulingNegativity": 1.24, + "firstIonizationPotential": 581, + "oxidationStates": 3, + "electronicConfiguration": "[Xe]4f¹²5d6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.56 + }, + { + "symbol": "Tm", + "atomicNumber": 69, + "atomicWeight": 168.93421, + "density": 9.321, + "meltingPoint": 1818, + "boilingPoint": 2220, + "atomicRadius": 177, + "covalentRadius": 156, + "ionicRadius": "", + "atomicVolume": 18.1, + "specificHeat": 0.16, + "fusionHeat": "-", + "evaporationHeat": 232, + "thermalConductivity": "(16.9)", + "paulingNegativity": 1.25, + "firstIonizationPotential": 589, + "oxidationStates": "3, 2", + "electronicConfiguration": "[Xe]4f¹³5d6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.54 + }, + { + "symbol": "Yb", + "atomicNumber": 70, + "atomicWeight": 173.04, + "density": 6.9654, + "meltingPoint": 1097, + "boilingPoint": 1466, + "atomicRadius": 194, + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": 24.8, + "specificHeat": 0.145, + "fusionHeat": 3.35, + "evaporationHeat": 159, + "thermalConductivity": "(34.9)", + "paulingNegativity": 1.1, + "firstIonizationPotential": 603, + "oxidationStates": "3, 2", + "electronicConfiguration": "[Xe]4f¹5d¹6s²", + "latticeStructure": "FCC", + "latticeConstant": 5.49 + }, + { + "symbol": "Lu", + "atomicNumber": 71, + "atomicWeight": 174.967, + "density": 9.8404, + "meltingPoint": 1936, + "boilingPoint": 3668, + "atomicRadius": 175, + "covalentRadius": 156, + "ionicRadius": "", + "atomicVolume": 17.8, + "specificHeat": 0.155, + "fusionHeat": "-", + "evaporationHeat": 414, + "thermalConductivity": "(16.4)", + "paulingNegativity": 1.27, + "firstIonizationPotential": 513, + "oxidationStates": 3, + "electronicConfiguration": "[Xe]4f¹5d¹6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.51 + }, + { + "symbol": "Hf", + "atomicNumber": 72, + "atomicWeight": 178.49, + "density": 13.31, + "meltingPoint": 2503, + "boilingPoint": 5470, + "atomicRadius": 167, + "covalentRadius": 144, + "ionicRadius": "", + "atomicVolume": 13.6, + "specificHeat": 0.146, + "fusionHeat": "(25.1)", + "evaporationHeat": 575, + "thermalConductivity": 23, + "paulingNegativity": 1.3, + "firstIonizationPotential": 575.2, + "oxidationStates": 4, + "electronicConfiguration": "[Xe]4f¹5d²6s²", + "latticeStructure": "HEX", + "latticeConstant": 3.2 + }, + { + "symbol": "Ta", + "atomicNumber": 73, + "atomicWeight": 180.9479, + "density": 16.654, + "meltingPoint": 3269, + "boilingPoint": 5698, + "atomicRadius": 149, + "covalentRadius": 134, + "ionicRadius": "", + "atomicVolume": 10.9, + "specificHeat": 0.14, + "fusionHeat": 24.7, + "evaporationHeat": 758, + "thermalConductivity": 57.5, + "paulingNegativity": 1.5, + "firstIonizationPotential": 760.1, + "oxidationStates": 5, + "electronicConfiguration": "[Xe]4f¹5d³6s²", + "latticeStructure": "BCC", + "latticeConstant": 3.31 + }, + { + "symbol": "W", + "atomicNumber": 74, + "atomicWeight": 183.84, + "density": 19.3, + "meltingPoint": 3680, + "boilingPoint": 5930, + "atomicRadius": 141, + "covalentRadius": 130, + "ionicRadius": "", + "atomicVolume": 9.53, + "specificHeat": 0.133, + "fusionHeat": "(35)", + "evaporationHeat": 824, + "thermalConductivity": 173, + "paulingNegativity": 1.7, + "firstIonizationPotential": 769.7, + "oxidationStates": "6, 5, 4, 3, 2, 0", + "electronicConfiguration": "[Xe]4f¹5d6s²", + "latticeStructure": "BCC", + "latticeConstant": 3.16 + }, + { + "symbol": "Re", + "atomicNumber": 75, + "atomicWeight": 186.207, + "density": 21.02, + "meltingPoint": 3453, + "boilingPoint": 5900, + "atomicRadius": 137, + "covalentRadius": 128, + "ionicRadius": "", + "atomicVolume": 8.85, + "specificHeat": 0.138, + "fusionHeat": 34, + "evaporationHeat": 704, + "thermalConductivity": 48, + "paulingNegativity": 1.9, + "firstIonizationPotential": 759.1, + "oxidationStates": "5, 4, 3, 2, -1", + "electronicConfiguration": "[Xe]4f¹5d6s²", + "latticeStructure": "HEX", + "latticeConstant": 2.76 + }, + { + "symbol": "Os", + "atomicNumber": 76, + "atomicWeight": 190.23, + "density": 22.57, + "meltingPoint": 3327, + "boilingPoint": 5300, + "atomicRadius": 135, + "covalentRadius": 126, + "ionicRadius": "", + "atomicVolume": 8.43, + "specificHeat": 0.131, + "fusionHeat": 31.7, + "evaporationHeat": 738, + "thermalConductivity": "(87.6)", + "paulingNegativity": 2.2, + "firstIonizationPotential": 819.8, + "oxidationStates": "8, 6, 4, 3, 2, 0, -2", + "electronicConfiguration": "[Xe]4f¹5d6s²", + "latticeStructure": "HEX", + "latticeConstant": 2.74 + }, + { + "symbol": "Ir", + "atomicNumber": 77, + "atomicWeight": 192.22, + "density": 22.42, + "meltingPoint": 2683, + "boilingPoint": 4403, + "atomicRadius": 136, + "covalentRadius": 127, + "ionicRadius": "", + "atomicVolume": 8.54, + "specificHeat": 0.133, + "fusionHeat": 27.61, + "evaporationHeat": 604, + "thermalConductivity": 147, + "paulingNegativity": 2.2, + "firstIonizationPotential": 868.1, + "oxidationStates": "6, 4, 3, 2, 1, 0, -1", + "electronicConfiguration": "[Xe]4f¹5d6s²", + "latticeStructure": "FCC", + "latticeConstant": 3.84 + }, + { + "symbol": "Pt", + "atomicNumber": 78, + "atomicWeight": 195.08, + "density": 21.45, + "meltingPoint": 2045, + "boilingPoint": 4100, + "atomicRadius": 139, + "covalentRadius": 130, + "ionicRadius": "", + "atomicVolume": 9.1, + "specificHeat": 0.133, + "fusionHeat": 21.76, + "evaporationHeat": "~470", + "thermalConductivity": 71.6, + "paulingNegativity": 2.28, + "firstIonizationPotential": 868.1, + "oxidationStates": "4, 2, 0", + "electronicConfiguration": "[Xe]4f¹5d6s²", + "latticeStructure": "FCC", + "latticeConstant": 3.92 + }, + { + "symbol": "Au", + "atomicNumber": 79, + "atomicWeight": 196.96654, + "density": 19.3, + "meltingPoint": 1337.58, + "boilingPoint": 3080, + "atomicRadius": 146, + "covalentRadius": 134, + "ionicRadius": "", + "atomicVolume": 10.2, + "specificHeat": 0.129, + "fusionHeat": 12.68, + "evaporationHeat": "~340", + "thermalConductivity": 318, + "paulingNegativity": 2.54, + "firstIonizationPotential": 889.3, + "oxidationStates": "3, 1", + "electronicConfiguration": "[Xe]4f¹5d¹6s²", + "latticeStructure": "FCC", + "latticeConstant": 4.08 + }, + { + "symbol": "Hg", + "atomicNumber": 80, + "atomicWeight": 200.59, + "density": "13.546 (@ +20°C)", + "meltingPoint": 234.28, + "boilingPoint": 629.73, + "atomicRadius": 157, + "covalentRadius": 149, + "ionicRadius": "", + "atomicVolume": 14.8, + "specificHeat": 0.138, + "fusionHeat": 2.295, + "evaporationHeat": 58.5, + "thermalConductivity": 8.3, + "paulingNegativity": 2, + "firstIonizationPotential": 1006, + "oxidationStates": "2, 1", + "electronicConfiguration": "[Xe]4f¹5d¹6s²", + "latticeStructure": "RHL", + "latticeConstant": 2.99 + }, + { + "symbol": "Tl", + "atomicNumber": 81, + "atomicWeight": 204.3833, + "density": 11.85, + "meltingPoint": 576.6, + "boilingPoint": 1730, + "atomicRadius": 171, + "covalentRadius": 148, + "ionicRadius": "", + "atomicVolume": 17.2, + "specificHeat": 0.128, + "fusionHeat": 4.31, + "evaporationHeat": 162.4, + "thermalConductivity": 46.1, + "paulingNegativity": 1.62, + "firstIonizationPotential": 588.9, + "oxidationStates": "3, 1", + "electronicConfiguration": "[Xe]4f¹5d¹6s²6p¹", + "latticeStructure": "HEX", + "latticeConstant": 3.46 + }, + { + "symbol": "Pb", + "atomicNumber": 82, + "atomicWeight": 207.2, + "density": 11.35, + "meltingPoint": 600.65, + "boilingPoint": 2013, + "atomicRadius": 175, + "covalentRadius": 147, + "ionicRadius": "", + "atomicVolume": 18.3, + "specificHeat": 0.159, + "fusionHeat": 4.77, + "evaporationHeat": 177.8, + "thermalConductivity": 35.3, + "paulingNegativity": 1.8, + "firstIonizationPotential": 715.2, + "oxidationStates": "4, 2", + "electronicConfiguration": "[Xe]4f¹5d¹6s²6p²", + "latticeStructure": "FCC", + "latticeConstant": 4.95 + }, + { + "symbol": "Bi", + "atomicNumber": 83, + "atomicWeight": 208.98037, + "density": 9.747, + "meltingPoint": 544.5, + "boilingPoint": 1883, + "atomicRadius": 170, + "covalentRadius": 146, + "ionicRadius": "", + "atomicVolume": 21.3, + "specificHeat": 0.124, + "fusionHeat": 11, + "evaporationHeat": 172, + "thermalConductivity": 7.9, + "paulingNegativity": 2.02, + "firstIonizationPotential": 702.9, + "oxidationStates": "5, 3", + "electronicConfiguration": "[Xe]4f¹5d¹6s²6p³", + "latticeStructure": "RHL", + "latticeConstant": 4.75 + }, + { + "symbol": "Po", + "atomicNumber": 84, + "atomicWeight": 208.9824, + "density": 9.32, + "meltingPoint": 527, + "boilingPoint": 1235, + "atomicRadius": 176, + "covalentRadius": 146, + "ionicRadius": "", + "atomicVolume": 22.7, + "specificHeat": 0.125, + "fusionHeat": "(10)", + "evaporationHeat": "(102.9)", + "thermalConductivity": "-", + "paulingNegativity": 2, + "firstIonizationPotential": 813.1, + "oxidationStates": "6, 4, 2", + "electronicConfiguration": "[Xe]4f¹5d¹6s²6p", + "latticeStructure": "SC", + "latticeConstant": 3.35 + }, + { + "symbol": "At", + "atomicNumber": 85, + "atomicWeight": 209.9871, + "density": "n/a", + "meltingPoint": 575, + "boilingPoint": 610, + "atomicRadius": "-", + "covalentRadius": "(145)", + "ionicRadius": "", + "atomicVolume": "-", + "specificHeat": "-", + "fusionHeat": "-", + "evaporationHeat": "-", + "thermalConductivity": "-", + "paulingNegativity": 2.2, + "firstIonizationPotential": 916.3, + "oxidationStates": "7, 5, 3, 1, -1", + "electronicConfiguration": "[Xe]4f¹5d¹6s²6p", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Rn", + "atomicNumber": 86, + "atomicWeight": 222.0176, + "density": "4.4 (@ -62°C)", + "meltingPoint": 202, + "boilingPoint": 211.4, + "atomicRadius": "-", + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": "-", + "specificHeat": 0.094, + "fusionHeat": "-", + "evaporationHeat": 18.1, + "thermalConductivity": 0.0036, + "paulingNegativity": "-", + "firstIonizationPotential": 1036.5, + "oxidationStates": "-", + "electronicConfiguration": "[Xe]4f¹5d¹6s²6p", + "latticeStructure": "FCC", + "latticeConstant": "n/a" + }, + { + "symbol": "Fr", + "atomicNumber": 87, + "atomicWeight": 223.0197, + "density": "n/a", + "meltingPoint": 300, + "boilingPoint": 950, + "atomicRadius": "-", + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": "-", + "specificHeat": "-", + "fusionHeat": 15, + "evaporationHeat": "-", + "thermalConductivity": "-", + "paulingNegativity": 0.7, + "firstIonizationPotential": "~375", + "oxidationStates": 2, + "electronicConfiguration": "[Rn]7s¹", + "latticeStructure": "BCC", + "latticeConstant": "n/a" + }, + { + "symbol": "Ra", + "atomicNumber": 88, + "atomicWeight": 226.0254, + "density": "(5.5)", + "meltingPoint": 973, + "boilingPoint": 1413, + "atomicRadius": "-", + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": 45, + "specificHeat": 0.12, + "fusionHeat": "(9.6)", + "evaporationHeat": "(113)", + "thermalConductivity": "(18.6)", + "paulingNegativity": 0.9, + "firstIonizationPotential": 509, + "oxidationStates": 2, + "electronicConfiguration": "[Rn]7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Ac", + "atomicNumber": 89, + "atomicWeight": 227.0278, + "density": "n/a", + "meltingPoint": 1320, + "boilingPoint": 3470, + "atomicRadius": 188, + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": 22.54, + "specificHeat": "-", + "fusionHeat": "(10.5)", + "evaporationHeat": "(292.9)", + "thermalConductivity": "-", + "paulingNegativity": 1.1, + "firstIonizationPotential": 665.5, + "oxidationStates": 3, + "electronicConfiguration": "[Rn]6d¹7s²", + "latticeStructure": "FCC", + "latticeConstant": 5.31 + }, + { + "symbol": "Th", + "atomicNumber": 90, + "atomicWeight": 232.0381, + "density": 11.78, + "meltingPoint": 2028, + "boilingPoint": 5060, + "atomicRadius": 180, + "covalentRadius": 165, + "ionicRadius": "", + "atomicVolume": 19.8, + "specificHeat": 0.113, + "fusionHeat": 16.11, + "evaporationHeat": 513.7, + "thermalConductivity": "(54.0)", + "paulingNegativity": 1.3, + "firstIonizationPotential": 670.4, + "oxidationStates": 4, + "electronicConfiguration": "[Rn]5f6d¹7s²", + "latticeStructure": "FCC", + "latticeConstant": 5.08 + }, + { + "symbol": "Pa", + "atomicNumber": 91, + "atomicWeight": 231.03588, + "density": 15.37, + "meltingPoint": 2113, + "boilingPoint": 4300, + "atomicRadius": 161, + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": 15, + "specificHeat": 0.121, + "fusionHeat": 16.7, + "evaporationHeat": 481.2, + "thermalConductivity": "-", + "paulingNegativity": 1.5, + "firstIonizationPotential": "n/a", + "oxidationStates": "5, 4", + "electronicConfiguration": "[Rn]5f²6d¹7s²", + "latticeStructure": "TET", + "latticeConstant": 3.92 + }, + { + "symbol": "U", + "atomicNumber": 92, + "atomicWeight": 238.0289, + "density": 19.05, + "meltingPoint": 1405.5, + "boilingPoint": 4018, + "atomicRadius": 138, + "covalentRadius": 142, + "ionicRadius": "", + "atomicVolume": 12.5, + "specificHeat": 0.115, + "fusionHeat": 12.6, + "evaporationHeat": 417, + "thermalConductivity": 27.5, + "paulingNegativity": 1.38, + "firstIonizationPotential": 686.4, + "oxidationStates": "6, 5, 4, 3", + "electronicConfiguration": "[Rn]5f³6d¹7s²", + "latticeStructure": "ORC", + "latticeConstant": 2.85 + }, + { + "symbol": "Np", + "atomicNumber": 93, + "atomicWeight": 237.048, + "density": 20.25, + "meltingPoint": 913, + "boilingPoint": 4175, + "atomicRadius": 130, + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": 21.1, + "specificHeat": "-", + "fusionHeat": "(9.6)", + "evaporationHeat": 336, + "thermalConductivity": "(6.3)", + "paulingNegativity": 1.36, + "firstIonizationPotential": "n/a", + "oxidationStates": "6, 5, 4, 3", + "electronicConfiguration": "[Rn]5f6d¹7s²", + "latticeStructure": "ORC", + "latticeConstant": 4.72 + }, + { + "symbol": "Pu", + "atomicNumber": 94, + "atomicWeight": 244.0642, + "density": 19.84, + "meltingPoint": 914, + "boilingPoint": 3505, + "atomicRadius": 151, + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": "-", + "specificHeat": "-", + "fusionHeat": 2.8, + "evaporationHeat": 343.5, + "thermalConductivity": "(6.7)", + "paulingNegativity": 1.28, + "firstIonizationPotential": 491.9, + "oxidationStates": "6, 5, 4, 3", + "electronicConfiguration": "[Rn]5f6d7s²", + "latticeStructure": "MCL", + "latticeConstant": "n/a" + }, + { + "symbol": "Am", + "atomicNumber": 95, + "atomicWeight": 243.0614, + "density": 13.67, + "meltingPoint": 1267, + "boilingPoint": 2880, + "atomicRadius": 173, + "covalentRadius": "-", + "ionicRadius": "", + "atomicVolume": 20.8, + "specificHeat": "-", + "fusionHeat": "(10.0)", + "evaporationHeat": 238.5, + "thermalConductivity": "-", + "paulingNegativity": 1.3, + "firstIonizationPotential": "n/a", + "oxidationStates": "6, 5, 4, 3", + "electronicConfiguration": "[Rn]5f6d7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Cm", + "atomicNumber": 96, + "atomicWeight": 247.0703, + "density": 13.51, + "meltingPoint": 1340, + "boilingPoint": "n/a", + "atomicRadius": 299, + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": 18.28, + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": 1.3, + "firstIonizationPotential": "(580)", + "oxidationStates": "4, 3", + "electronicConfiguration": "[Rn]5f6d¹7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/A" + }, + { + "symbol": "Bk", + "atomicNumber": 97, + "atomicWeight": 247.0703, + "density": 13.25, + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": 297, + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": 1.3, + "firstIonizationPotential": "(600)", + "oxidationStates": "4, 3", + "electronicConfiguration": "[Rn]5f6d7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Cf", + "atomicNumber": 98, + "atomicWeight": 251.0796, + "density": 15.1, + "meltingPoint": 900, + "boilingPoint": "n/a", + "atomicRadius": 295, + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": 1.3, + "firstIonizationPotential": "(610)", + "oxidationStates": "4, 3", + "electronicConfiguration": "[Rn]5f¹6d7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Es", + "atomicNumber": 99, + "atomicWeight": 252.083, + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": 1130, + "atomicRadius": 292, + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": 1.3, + "firstIonizationPotential": "(620)", + "oxidationStates": 3, + "electronicConfiguration": "[Rn]5f¹¹6d7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Fm", + "atomicNumber": 100, + "atomicWeight": 257.0951, + "density": "n/a", + "meltingPoint": 1800, + "boilingPoint": "n/a", + "atomicRadius": 290, + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": 1.3, + "firstIonizationPotential": "(630)", + "oxidationStates": 3, + "electronicConfiguration": "[Rn]5f¹²6d7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Md", + "atomicNumber": 101, + "atomicWeight": 258.1, + "density": "n/a", + "meltingPoint": 1100, + "boilingPoint": "n/a", + "atomicRadius": 287, + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": 1.3, + "firstIonizationPotential": "(635)", + "oxidationStates": 3, + "electronicConfiguration": "[Rn]5f¹³6d7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "No", + "atomicNumber": 102, + "atomicWeight": 259.1009, + "density": "n/a", + "meltingPoint": 1100, + "boilingPoint": "n/a", + "atomicRadius": 285, + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": 1.3, + "firstIonizationPotential": "(640)", + "oxidationStates": "3,2", + "electronicConfiguration": "[Rn]5f¹6d7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Lr", + "atomicNumber": 103, + "atomicWeight": 262.11, + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": 282, + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": 3, + "electronicConfiguration": "[Rn]5f¹6d¹7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Rf", + "atomicNumber": 104, + "atomicWeight": "[261]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "-", + "electronicConfiguration": "[Rn]5f¹6d²7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Db", + "atomicNumber": 105, + "atomicWeight": "[262]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "-", + "electronicConfiguration": "[Rn]5f¹6d³6s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Sg", + "atomicNumber": 106, + "atomicWeight": "[266]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "-", + "electronicConfiguration": "[Rn]5f¹6d¹7s²", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Bh", + "atomicNumber": 107, + "atomicWeight": "[264]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Hs", + "atomicNumber": 108, + "atomicWeight": "[269]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Mt", + "atomicNumber": 109, + "atomicWeight": "[268]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Uun", + "atomicNumber": 110, + "atomicWeight": "[269]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Uuu", + "atomicNumber": 111, + "atomicWeight": "[272]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Uub", + "atomicNumber": 112, + "atomicWeight": "[277]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Uut", + "atomicNumber": 113, + "atomicWeight": "n/a", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Uuq", + "atomicNumber": 114, + "atomicWeight": "[289]", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Uup", + "atomicNumber": 115, + "atomicWeight": "n/a", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Uuh", + "atomicNumber": 116, + "atomicWeight": "n/a", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Uus", + "atomicNumber": 117, + "atomicWeight": "n/a", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + }, + { + "symbol": "Uuo", + "atomicNumber": 118, + "atomicWeight": "n/a", + "density": "n/a", + "meltingPoint": "n/a", + "boilingPoint": "n/a", + "atomicRadius": "n/a", + "covalentRadius": "n/a", + "ionicRadius": "", + "atomicVolume": "n/a", + "specificHeat": "n/a", + "fusionHeat": "n/a", + "evaporationHeat": "n/a", + "thermalConductivity": "n/a", + "paulingNegativity": "n/a", + "firstIonizationPotential": "n/a", + "oxidationStates": "n/a", + "electronicConfiguration": "n/a", + "latticeStructure": "n/a", + "latticeConstant": "n/a" + } + ] +} diff --git a/example/material/elements/elements.json b/example/material/elements/elements.json deleted file mode 100644 index a1a5dd1ea..000000000 --- a/example/material/elements/elements.json +++ /dev/null @@ -1,2609 +0,0 @@ -{ - "Hydrogen": { - "symbol": "H", - "atomicNumber": 1, - "atomicWeight": 1.00794, - "density": "0.0708 (@ -253°C)", - "meltingPoint": 14.01, - "boilingPoint": 20.28, - "atomicRadius": 79, - "covalentRadius": 32, - "ionicRadius": "", - "atomicVolume": 14.1, - "specificHeat": "14.267 (H-H)", - "fusionHeat": "0.117 (H-H)", - "evaporationHeat": "0.904 (H-H)", - "thermalConductivity": 0.1815, - "paulingNegativity": 2.2, - "firstIonizationPotential": 1311.3, - "oxidationStates": "1, -1", - "electronicConfiguration": "1s¹", - "latticeStructure": "HEX", - "latticeConstant": 3.75 - }, - "Helium": { - "symbol": "He", - "atomicNumber": 2, - "atomicWeight": 4.002602, - "density": "0.147 (@ -270°C)", - "meltingPoint": 0.95, - "boilingPoint": 4.216, - "atomicRadius": 0, - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": 31.8, - "specificHeat": 5.188, - "fusionHeat": "-", - "evaporationHeat": 0.08, - "thermalConductivity": 0.152, - "paulingNegativity": "-", - "firstIonizationPotential": 2361.3, - "oxidationStates": "-", - "electronicConfiguration": "1s²", - "latticeStructure": "HEX", - "latticeConstant": 3.57 - }, - "Lithium": { - "symbol": "Li", - "atomicNumber": 3, - "atomicWeight": 6.941, - "density": 0.534, - "meltingPoint": 553.69, - "boilingPoint": 1118.15, - "atomicRadius": 155, - "covalentRadius": 163, - "ionicRadius": "", - "atomicVolume": 13.1, - "specificHeat": 3.489, - "fusionHeat": 2.89, - "evaporationHeat": 148, - "thermalConductivity": 84.8, - "paulingNegativity": 0.98, - "firstIonizationPotential": 519.9, - "oxidationStates": 1, - "electronicConfiguration": "[He]2s¹", - "latticeStructure": "BCC", - "latticeConstant": 3.49 - }, - "Beryllium": { - "symbol": "Be", - "atomicNumber": 4, - "atomicWeight": 9.01218, - "density": 1.848, - "meltingPoint": 1551, - "boilingPoint": 3243, - "atomicRadius": 112, - "covalentRadius": 90, - "ionicRadius": "", - "atomicVolume": 5, - "specificHeat": 1.824, - "fusionHeat": 12.21, - "evaporationHeat": 309, - "thermalConductivity": 201, - "paulingNegativity": 1.57, - "firstIonizationPotential": 898.8, - "oxidationStates": 2, - "electronicConfiguration": "[He]2s²", - "latticeStructure": "HEX", - "latticeConstant": 2.29 - }, - "Boron": { - "symbol": "B", - "atomicNumber": 5, - "atomicWeight": 10.811, - "density": 2.34, - "meltingPoint": 2573, - "boilingPoint": 3931, - "atomicRadius": 98, - "covalentRadius": 82, - "ionicRadius": "", - "atomicVolume": 4.6, - "specificHeat": 1.025, - "fusionHeat": 23.6, - "evaporationHeat": 504.5, - "thermalConductivity": 27.4, - "paulingNegativity": 2.04, - "firstIonizationPotential": 800.2, - "oxidationStates": 3, - "electronicConfiguration": "[He]2s²2p¹", - "latticeStructure": "TET", - "latticeConstant": 8.73 - }, - "Carbon": { - "symbol": "C", - "atomicNumber": 6, - "atomicWeight": 12.011, - "density": "2.25 (graphite)", - "meltingPoint": 3820, - "boilingPoint": 5100, - "atomicRadius": 91, - "covalentRadius": 77, - "ionicRadius": "", - "atomicVolume": 5.3, - "specificHeat": 0.711, - "fusionHeat": "-", - "evaporationHeat": "-", - "thermalConductivity": 1.59, - "paulingNegativity": 2.55, - "firstIonizationPotential": 1085.7, - "oxidationStates": "4, 2, -4", - "electronicConfiguration": "[He]2s²2p²", - "latticeStructure": "DIA", - "latticeConstant": 3.57 - }, - "Nitrogen": { - "symbol": "N", - "atomicNumber": 7, - "atomicWeight": 14.00674, - "density": "0.808 (@ -195.8°C)", - "meltingPoint": 63.29, - "boilingPoint": 77.4, - "atomicRadius": 92, - "covalentRadius": 75, - "ionicRadius": "", - "atomicVolume": 17.3, - "specificHeat": "1.042 (N-N)", - "fusionHeat": "-", - "evaporationHeat": "-", - "thermalConductivity": 0.026, - "paulingNegativity": 3.04, - "firstIonizationPotential": 1401.5, - "oxidationStates": "5, 4, 3, 2, -3", - "electronicConfiguration": "[He]2s²2p³", - "latticeStructure": "HEX", - "latticeConstant": 4.039 - }, - "Oxygen": { - "symbol": "O", - "atomicNumber": 8, - "atomicWeight": 15.9994, - "density": "1.149 (@ -183°C)", - "meltingPoint": 54.8, - "boilingPoint": 90.19, - "atomicRadius": "-", - "covalentRadius": 73, - "ionicRadius": "", - "atomicVolume": 14, - "specificHeat": "0.916 (O-O)", - "fusionHeat": "-", - "evaporationHeat": "-", - "thermalConductivity": 0.027, - "paulingNegativity": 3.44, - "firstIonizationPotential": 1313.1, - "oxidationStates": "-2, -1", - "electronicConfiguration": "[He]2s²2p", - "latticeStructure": "CUB", - "latticeConstant": 6.83 - }, - "Fluorine": { - "symbol": "F", - "atomicNumber": 9, - "atomicWeight": 18.998403, - "density": "1.108 (@ -189°C)", - "meltingPoint": 53.53, - "boilingPoint": 85.01, - "atomicRadius": "-", - "covalentRadius": 72, - "ionicRadius": "", - "atomicVolume": 17.1, - "specificHeat": "0.824 (F-F)", - "fusionHeat": "0.51 (F-F)", - "evaporationHeat": "6.54 (F-F)", - "thermalConductivity": 0.028, - "paulingNegativity": 3.98, - "firstIonizationPotential": 1680, - "oxidationStates": -1, - "electronicConfiguration": "[He]2s²2p", - "latticeStructure": "MCL", - "latticeConstant": "-" - }, - "Neon": { - "symbol": "Ne", - "atomicNumber": 10, - "atomicWeight": 20.1797, - "density": "1.204 (@ -246°C)", - "meltingPoint": 48, - "boilingPoint": 27.1, - "atomicRadius": "-", - "covalentRadius": 71, - "ionicRadius": "", - "atomicVolume": 16.8, - "specificHeat": 1.029, - "fusionHeat": "-", - "evaporationHeat": 1.74, - "thermalConductivity": "(0.0493)", - "paulingNegativity": 0, - "firstIonizationPotential": 2079.4, - "oxidationStates": "-", - "electronicConfiguration": "[He]2s²2p", - "latticeStructure": "FCC", - "latticeConstant": 4.43 - }, - "Sodium": { - "symbol": "Na", - "atomicNumber": 11, - "atomicWeight": 22.989768, - "density": 0.971, - "meltingPoint": 370.96, - "boilingPoint": 1156.1, - "atomicRadius": 190, - "covalentRadius": 154, - "ionicRadius": "", - "atomicVolume": 23.7, - "specificHeat": 1.222, - "fusionHeat": 2.64, - "evaporationHeat": 97.9, - "thermalConductivity": 142, - "paulingNegativity": 0.93, - "firstIonizationPotential": 495.6, - "oxidationStates": 1, - "electronicConfiguration": "[Ne]3s¹", - "latticeStructure": "BCC", - "latticeConstant": 4.23 - }, - "Magnesium": { - "symbol": "Mg", - "atomicNumber": 12, - "atomicWeight": 24.305, - "density": 1.738, - "meltingPoint": 922, - "boilingPoint": 1363, - "atomicRadius": 160, - "covalentRadius": 136, - "ionicRadius": "", - "atomicVolume": 14, - "specificHeat": 1.025, - "fusionHeat": 9.2, - "evaporationHeat": 131.8, - "thermalConductivity": 156, - "paulingNegativity": 1.31, - "firstIonizationPotential": 737.3, - "oxidationStates": 2, - "electronicConfiguration": "[Ne]3s²", - "latticeStructure": "HEX", - "latticeConstant": 3.21 - }, - "Aluminum": { - "symbol": "Al", - "atomicNumber": 13, - "atomicWeight": 26.981539, - "density": 2.6989, - "meltingPoint": 933.5, - "boilingPoint": 2740, - "atomicRadius": 143, - "covalentRadius": 118, - "ionicRadius": "", - "atomicVolume": 10, - "specificHeat": 0.9, - "fusionHeat": 10.75, - "evaporationHeat": 284.1, - "thermalConductivity": 237, - "paulingNegativity": 1.61, - "firstIonizationPotential": 577.2, - "oxidationStates": 3, - "electronicConfiguration": "[Ne]3s²3p¹", - "latticeStructure": "FCC", - "latticeConstant": 4.05 - }, - "Silicon": { - "symbol": "Si", - "atomicNumber": 14, - "atomicWeight": 28.0855, - "density": 2.33, - "meltingPoint": 1683, - "boilingPoint": 2628, - "atomicRadius": 132, - "covalentRadius": 111, - "ionicRadius": "", - "atomicVolume": 12.1, - "specificHeat": 0.703, - "fusionHeat": 50.6, - "evaporationHeat": 383, - "thermalConductivity": 149, - "paulingNegativity": 1.9, - "firstIonizationPotential": 786, - "oxidationStates": "4, -4", - "electronicConfiguration": "[Ne]3s²3p²", - "latticeStructure": "DIA", - "latticeConstant": 5.43 - }, - "Phosphorus": { - "symbol": "P", - "atomicNumber": 15, - "atomicWeight": 30.973762, - "density": "1.82 (white phosphorus)", - "meltingPoint": 317.3, - "boilingPoint": 553, - "atomicRadius": 128, - "covalentRadius": 106, - "ionicRadius": "", - "atomicVolume": 17, - "specificHeat": 0.757, - "fusionHeat": 2.51, - "evaporationHeat": 49.8, - "thermalConductivity": "(0.236)", - "paulingNegativity": 2.19, - "firstIonizationPotential": 1011.2, - "oxidationStates": "5, 3, -3", - "electronicConfiguration": "[Ne]3s²3p³", - "latticeStructure": "CUB", - "latticeConstant": 7.17 - }, - "Sulfur": { - "symbol": "S", - "atomicNumber": 16, - "atomicWeight": 32.066, - "density": 2.07, - "meltingPoint": 386, - "boilingPoint": 717.824, - "atomicRadius": 127, - "covalentRadius": 102, - "ionicRadius": "", - "atomicVolume": 15.5, - "specificHeat": 0.732, - "fusionHeat": 1.23, - "evaporationHeat": 10.5, - "thermalConductivity": 0.27, - "paulingNegativity": 2.58, - "firstIonizationPotential": 999, - "oxidationStates": "6, 4, 2, -2", - "electronicConfiguration": "[Ne]3s²3p", - "latticeStructure": "ORC", - "latticeConstant": 10.47 - }, - "Chlorine": { - "symbol": "Cl", - "atomicNumber": 17, - "atomicWeight": 35.4527, - "density": "1.56 (@ -33.6°C)", - "meltingPoint": 172.2, - "boilingPoint": 238.6, - "atomicRadius": "-", - "covalentRadius": 99, - "ionicRadius": "", - "atomicVolume": 18.7, - "specificHeat": "0.477 (Cl-Cl)", - "fusionHeat": "6.41 (Cl-Cl)", - "evaporationHeat": "20.41 (Cl-Cl)", - "thermalConductivity": 0.009, - "paulingNegativity": 3.16, - "firstIonizationPotential": 1254.9, - "oxidationStates": "7, 5, 3, 1, -1", - "electronicConfiguration": "[Ne]3s²3p", - "latticeStructure": "ORC", - "latticeConstant": 6.24 - }, - "Argon": { - "symbol": "Ar", - "atomicNumber": 18, - "atomicWeight": 39.948, - "density": "1.40 (@ -186°C)", - "meltingPoint": 83.8, - "boilingPoint": 87.3, - "atomicRadius": "2-", - "covalentRadius": 98, - "ionicRadius": "", - "atomicVolume": 24.2, - "specificHeat": 0.138, - "fusionHeat": "-", - "evaporationHeat": 6.52, - "thermalConductivity": 0.0177, - "paulingNegativity": 0, - "firstIonizationPotential": 1519.6, - "oxidationStates": "-", - "electronicConfiguration": "[Ne]3s²3p", - "latticeStructure": "FCC", - "latticeConstant": 5.26 - }, - "Potassium": { - "symbol": "K", - "atomicNumber": 19, - "atomicWeight": 39.0983, - "density": 0.856, - "meltingPoint": 336.8, - "boilingPoint": 1047, - "atomicRadius": 235, - "covalentRadius": 203, - "ionicRadius": "", - "atomicVolume": 45.3, - "specificHeat": 0.753, - "fusionHeat": 102.5, - "evaporationHeat": 2.33, - "thermalConductivity": 79, - "paulingNegativity": 0.82, - "firstIonizationPotential": 418.5, - "oxidationStates": 1, - "electronicConfiguration": "[Ar]4s¹", - "latticeStructure": "BCC", - "latticeConstant": 5.23 - }, - "Calcium": { - "symbol": "Ca", - "atomicNumber": 20, - "atomicWeight": 40.078, - "density": 1.55, - "meltingPoint": 1112, - "boilingPoint": 1757, - "atomicRadius": 197, - "covalentRadius": 174, - "ionicRadius": "", - "atomicVolume": 29.9, - "specificHeat": 0.653, - "fusionHeat": 9.2, - "evaporationHeat": 153.6, - "thermalConductivity": "(201)", - "paulingNegativity": 1, - "firstIonizationPotential": 589.4, - "oxidationStates": 2, - "electronicConfiguration": "[Ar]4s²", - "latticeStructure": "FCC", - "latticeConstant": 5.58 - }, - "Scandium": { - "symbol": "Sc", - "atomicNumber": 21, - "atomicWeight": 44.95591, - "density": 2.99, - "meltingPoint": 1814, - "boilingPoint": 3104, - "atomicRadius": 162, - "covalentRadius": 144, - "ionicRadius": "", - "atomicVolume": 15, - "specificHeat": 0.556, - "fusionHeat": 15.8, - "evaporationHeat": 332.7, - "thermalConductivity": 15.8, - "paulingNegativity": 1.36, - "firstIonizationPotential": 630.8, - "oxidationStates": 3, - "electronicConfiguration": "[Ar]3d¹4s²", - "latticeStructure": "HEX", - "latticeConstant": 3.31 - }, - "Titanium": { - "symbol": "Ti", - "atomicNumber": 22, - "atomicWeight": 47.88, - "density": 4.54, - "meltingPoint": 1933, - "boilingPoint": 3560, - "atomicRadius": 147, - "covalentRadius": 132, - "ionicRadius": "", - "atomicVolume": 10.6, - "specificHeat": 0.523, - "fusionHeat": 18.8, - "evaporationHeat": 422.6, - "thermalConductivity": 21.9, - "paulingNegativity": 1.54, - "firstIonizationPotential": 657.8, - "oxidationStates": "4, 3", - "electronicConfiguration": "[Ar]3d²4s²", - "latticeStructure": "HEX", - "latticeConstant": 2.95 - }, - "Vanadium": { - "symbol": "V", - "atomicNumber": 23, - "atomicWeight": 50.9415, - "density": 6.11, - "meltingPoint": 2160, - "boilingPoint": 3650, - "atomicRadius": 134, - "covalentRadius": 122, - "ionicRadius": "", - "atomicVolume": 8.35, - "specificHeat": 0.485, - "fusionHeat": 17.5, - "evaporationHeat": 460, - "thermalConductivity": 30.7, - "paulingNegativity": 1.63, - "firstIonizationPotential": 650.1, - "oxidationStates": "5, 4, 3, 2, 0", - "electronicConfiguration": "[Ar]3d³4s²", - "latticeStructure": "BCC", - "latticeConstant": 3.02 - }, - "Chromium": { - "symbol": "Cr", - "atomicNumber": 24, - "atomicWeight": 51.9961, - "density": 7.18, - "meltingPoint": 2130, - "boilingPoint": 2945, - "atomicRadius": 130, - "covalentRadius": 118, - "ionicRadius": "", - "atomicVolume": 7.23, - "specificHeat": 0.488, - "fusionHeat": 21, - "evaporationHeat": 342, - "thermalConductivity": 93.9, - "paulingNegativity": 1.66, - "firstIonizationPotential": 652.4, - "oxidationStates": "6, 3, 2, 0", - "electronicConfiguration": "[Ar]3d4s¹", - "latticeStructure": "BCC", - "latticeConstant": 2.88 - }, - "Manganese": { - "symbol": "Mn", - "atomicNumber": 25, - "atomicWeight": 54.93805, - "density": 7.21, - "meltingPoint": 1517, - "boilingPoint": 2235, - "atomicRadius": 135, - "covalentRadius": 117, - "ionicRadius": "", - "atomicVolume": 7.39, - "specificHeat": 0.477, - "fusionHeat": "(13.4)", - "evaporationHeat": 221, - "thermalConductivity": "(7.8)", - "paulingNegativity": 1.55, - "firstIonizationPotential": 716.8, - "oxidationStates": "7, 6, 4, 3, 2, 0, -1", - "electronicConfiguration": "[Ar]3d4s²", - "latticeStructure": "CUB", - "latticeConstant": 8.89 - }, - "Iron": { - "symbol": "Fe", - "atomicNumber": 26, - "atomicWeight": 55.847, - "density": 7.874, - "meltingPoint": 1808, - "boilingPoint": 3023, - "atomicRadius": 126, - "covalentRadius": 117, - "ionicRadius": "", - "atomicVolume": 7.1, - "specificHeat": 0.443, - "fusionHeat": 13.8, - "evaporationHeat": "~340", - "thermalConductivity": 80.4, - "paulingNegativity": 1.83, - "firstIonizationPotential": 759.1, - "oxidationStates": "6, 3, 2, 0, -2", - "electronicConfiguration": "[Ar]3d4s²", - "latticeStructure": "BCC", - "latticeConstant": 2.87 - }, - "Cobalt": { - "symbol": "Co", - "atomicNumber": 27, - "atomicWeight": 58.9332, - "density": 8.9, - "meltingPoint": 1768, - "boilingPoint": 3143, - "atomicRadius": 125, - "covalentRadius": 116, - "ionicRadius": "", - "atomicVolume": 6.7, - "specificHeat": 0.456, - "fusionHeat": 15.48, - "evaporationHeat": 389.1, - "thermalConductivity": 100, - "paulingNegativity": 1.88, - "firstIonizationPotential": 758.1, - "oxidationStates": "3, 2, 0, -1", - "electronicConfiguration": "[Ar]3d4s²", - "latticeStructure": "HEX", - "latticeConstant": 2.51 - }, - "Nickel": { - "symbol": "Ni", - "atomicNumber": 28, - "atomicWeight": 58.6934, - "density": 8.902, - "meltingPoint": 1726, - "boilingPoint": 3005, - "atomicRadius": 124, - "covalentRadius": 115, - "ionicRadius": "", - "atomicVolume": 6.6, - "specificHeat": 0.443, - "fusionHeat": 17.61, - "evaporationHeat": 378.6, - "thermalConductivity": 90.9, - "paulingNegativity": 1.91, - "firstIonizationPotential": 736.2, - "oxidationStates": "3, 2, 0", - "electronicConfiguration": "[Ar]3d4s²", - "latticeStructure": "FCC", - "latticeConstant": 3.52 - }, - "Copper": { - "symbol": "Cu", - "atomicNumber": 29, - "atomicWeight": 63.546, - "density": 8.96, - "meltingPoint": 1356.6, - "boilingPoint": 2840, - "atomicRadius": 128, - "covalentRadius": 117, - "ionicRadius": "", - "atomicVolume": 7.1, - "specificHeat": 0.385, - "fusionHeat": 13.01, - "evaporationHeat": 304.6, - "thermalConductivity": 401, - "paulingNegativity": 1.9, - "firstIonizationPotential": 745, - "oxidationStates": "2, 1", - "electronicConfiguration": "[Ar]3d¹4s¹", - "latticeStructure": "FCC", - "latticeConstant": 3.61 - }, - "Zinc": { - "symbol": "Zn", - "atomicNumber": 30, - "atomicWeight": 65.39, - "density": 7.133, - "meltingPoint": 692.73, - "boilingPoint": 1180, - "atomicRadius": 138, - "covalentRadius": 125, - "ionicRadius": "", - "atomicVolume": 9.2, - "specificHeat": 0.388, - "fusionHeat": 7.28, - "evaporationHeat": 114.8, - "thermalConductivity": 116, - "paulingNegativity": 1.65, - "firstIonizationPotential": 905.8, - "oxidationStates": 2, - "electronicConfiguration": "[Ar]3d¹4s²", - "latticeStructure": "HEX", - "latticeConstant": 2.66 - }, - "Gallium": { - "symbol": "Ga", - "atomicNumber": 31, - "atomicWeight": 69.723, - "density": 5.91, - "meltingPoint": 302.93, - "boilingPoint": 2676, - "atomicRadius": 141, - "covalentRadius": 126, - "ionicRadius": "", - "atomicVolume": 11.8, - "specificHeat": 0.372, - "fusionHeat": 5.59, - "evaporationHeat": 270.3, - "thermalConductivity": 28.1, - "paulingNegativity": 1.81, - "firstIonizationPotential": 578.7, - "oxidationStates": 3, - "electronicConfiguration": "[Ar]3d¹4s²4p¹", - "latticeStructure": "ORC", - "latticeConstant": 4.51 - }, - "Germanium": { - "symbol": "Ge", - "atomicNumber": 32, - "atomicWeight": 72.61, - "density": 5.323, - "meltingPoint": 1210.6, - "boilingPoint": 3103, - "atomicRadius": 137, - "covalentRadius": 122, - "ionicRadius": "", - "atomicVolume": 13.6, - "specificHeat": 0.322, - "fusionHeat": 36.8, - "evaporationHeat": 328, - "thermalConductivity": 60.2, - "paulingNegativity": 2.01, - "firstIonizationPotential": 760, - "oxidationStates": 4, - "electronicConfiguration": "[Ar]3d¹4s²4p²", - "latticeStructure": "DIA", - "latticeConstant": 5.66 - }, - "Arsenic": { - "symbol": "As", - "atomicNumber": 33, - "atomicWeight": 74.92159, - "density": "5.73 (grey arsenic)", - "meltingPoint": 1090, - "boilingPoint": 876, - "atomicRadius": 139, - "covalentRadius": 120, - "ionicRadius": "", - "atomicVolume": 13.1, - "specificHeat": 0.328, - "fusionHeat": "-", - "evaporationHeat": 32.4, - "thermalConductivity": "(50.2)", - "paulingNegativity": 2.18, - "firstIonizationPotential": 946.2, - "oxidationStates": "5, 3, -2", - "electronicConfiguration": "[Ar]3d¹4s²4p³", - "latticeStructure": "RHL", - "latticeConstant": 4.13 - }, - "Selenium": { - "symbol": "Se", - "atomicNumber": 34, - "atomicWeight": 78.96, - "density": 4.79, - "meltingPoint": 490, - "boilingPoint": 958.1, - "atomicRadius": 140, - "covalentRadius": 116, - "ionicRadius": "", - "atomicVolume": 16.5, - "specificHeat": "0.321 (Se-Se)", - "fusionHeat": 5.23, - "evaporationHeat": 59.7, - "thermalConductivity": 0.52, - "paulingNegativity": 2.55, - "firstIonizationPotential": 940.4, - "oxidationStates": "6, 4, -2", - "electronicConfiguration": "[Ar]3d¹4s²4p", - "latticeStructure": "HEX", - "latticeConstant": 4.36 - }, - "Bromine": { - "symbol": "Br", - "atomicNumber": 35, - "atomicWeight": 79.904, - "density": 3.12, - "meltingPoint": 265.9, - "boilingPoint": 331.9, - "atomicRadius": "-", - "covalentRadius": 114, - "ionicRadius": "", - "atomicVolume": 23.5, - "specificHeat": "0.473 (Br-Br)", - "fusionHeat": "10.57 (Br-Br)", - "evaporationHeat": "29.56 (Br-Br)", - "thermalConductivity": 0.005, - "paulingNegativity": 2.96, - "firstIonizationPotential": 1142, - "oxidationStates": "7, 5, 3, 1, -1", - "electronicConfiguration": "[Ar]3d¹4s²4p", - "latticeStructure": "ORC", - "latticeConstant": 6.67 - }, - "Krypton": { - "symbol": "Kr", - "atomicNumber": 36, - "atomicWeight": 83.8, - "density": "2.155 (@ -153°C)", - "meltingPoint": 116.6, - "boilingPoint": 120.85, - "atomicRadius": "-", - "covalentRadius": 112, - "ionicRadius": "", - "atomicVolume": 32.2, - "specificHeat": 0.247, - "fusionHeat": "-", - "evaporationHeat": 9.05, - "thermalConductivity": 0.0095, - "paulingNegativity": 0, - "firstIonizationPotential": 1350, - "oxidationStates": 2, - "electronicConfiguration": "[Ar]3d¹4s²4p", - "latticeStructure": "FCC", - "latticeConstant": 5.72 - }, - "Rubidium": { - "symbol": "Rb", - "atomicNumber": 37, - "atomicWeight": 85.4678, - "density": 1.532, - "meltingPoint": 312.2, - "boilingPoint": 961, - "atomicRadius": 248, - "covalentRadius": 216, - "ionicRadius": "", - "atomicVolume": 55.9, - "specificHeat": 0.36, - "fusionHeat": 2.2, - "evaporationHeat": 75.8, - "thermalConductivity": 58.2, - "paulingNegativity": 0.82, - "firstIonizationPotential": 402.8, - "oxidationStates": 1, - "electronicConfiguration": "[Kr]5s¹", - "latticeStructure": "BCC", - "latticeConstant": 5.59 - }, - "Strontium": { - "symbol": "Sr", - "atomicNumber": 38, - "atomicWeight": 87.62, - "density": 2.54, - "meltingPoint": 1042, - "boilingPoint": 1657, - "atomicRadius": 215, - "covalentRadius": 191, - "ionicRadius": "", - "atomicVolume": 33.7, - "specificHeat": 0.301, - "fusionHeat": 9.2, - "evaporationHeat": 144, - "thermalConductivity": "(35.4)", - "paulingNegativity": 0.95, - "firstIonizationPotential": 549, - "oxidationStates": 2, - "electronicConfiguration": "[Kr]5s²", - "latticeStructure": "FCC", - "latticeConstant": 6.08 - }, - "Yttrium": { - "symbol": "Y", - "atomicNumber": 39, - "atomicWeight": 88.90585, - "density": 4.47, - "meltingPoint": 1795, - "boilingPoint": 3611, - "atomicRadius": 178, - "covalentRadius": 162, - "ionicRadius": "", - "atomicVolume": 19.8, - "specificHeat": 0.284, - "fusionHeat": 11.5, - "evaporationHeat": 367, - "thermalConductivity": "(17.2)", - "paulingNegativity": 1.22, - "firstIonizationPotential": 615.4, - "oxidationStates": 3, - "electronicConfiguration": "[Kr]4d¹5s²", - "latticeStructure": "HEX", - "latticeConstant": 3.65 - }, - "Zirconium": { - "symbol": "Zr", - "atomicNumber": 40, - "atomicWeight": 91.224, - "density": 6.506, - "meltingPoint": 2125, - "boilingPoint": 4650, - "atomicRadius": 160, - "covalentRadius": 145, - "ionicRadius": "", - "atomicVolume": 14.1, - "specificHeat": 0.281, - "fusionHeat": 19.2, - "evaporationHeat": 567, - "thermalConductivity": 22.7, - "paulingNegativity": 1.33, - "firstIonizationPotential": 659.7, - "oxidationStates": 4, - "electronicConfiguration": "[Kr]4d²5s²", - "latticeStructure": "HEX", - "latticeConstant": 3.23 - }, - "Niobium": { - "symbol": "Nb", - "atomicNumber": 41, - "atomicWeight": 92.90638, - "density": 8.57, - "meltingPoint": 2741, - "boilingPoint": 5015, - "atomicRadius": 146, - "covalentRadius": 134, - "ionicRadius": "", - "atomicVolume": 10.8, - "specificHeat": 0.268, - "fusionHeat": 26.8, - "evaporationHeat": 680, - "thermalConductivity": 53.7, - "paulingNegativity": 1.6, - "firstIonizationPotential": 663.6, - "oxidationStates": "5, 3", - "electronicConfiguration": "[Kr]4d5s¹", - "latticeStructure": "BCC", - "latticeConstant": 3.3 - }, - "Molybdenum": { - "symbol": "Mo", - "atomicNumber": 42, - "atomicWeight": 95.94, - "density": 10.22, - "meltingPoint": 2890, - "boilingPoint": 4885, - "atomicRadius": 139, - "covalentRadius": 130, - "ionicRadius": "", - "atomicVolume": 9.4, - "specificHeat": 0.251, - "fusionHeat": 28, - "evaporationHeat": "~590", - "thermalConductivity": "(138)", - "paulingNegativity": 2.16, - "firstIonizationPotential": 684.8, - "oxidationStates": "6, 5, 4, 3, 2, 0", - "electronicConfiguration": "[Kr]4d5s¹", - "latticeStructure": "BCC", - "latticeConstant": 3.15 - }, - "Technetium": { - "symbol": "Tc", - "atomicNumber": 43, - "atomicWeight": 97.9072, - "density": 11.5, - "meltingPoint": 2445, - "boilingPoint": 5150, - "atomicRadius": 136, - "covalentRadius": 127, - "ionicRadius": "", - "atomicVolume": 8.5, - "specificHeat": 0.243, - "fusionHeat": 23.8, - "evaporationHeat": 585, - "thermalConductivity": 50.6, - "paulingNegativity": 1.9, - "firstIonizationPotential": 702.2, - "oxidationStates": 7, - "electronicConfiguration": "[Kr]4d5s¹", - "latticeStructure": "HEX", - "latticeConstant": 2.74 - }, - "Ruthenium": { - "symbol": "Ru", - "atomicNumber": 44, - "atomicWeight": 101.07, - "density": 12.41, - "meltingPoint": 2583, - "boilingPoint": 4173, - "atomicRadius": 134, - "covalentRadius": 125, - "ionicRadius": "", - "atomicVolume": 8.3, - "specificHeat": 0.238, - "fusionHeat": "(25.5)", - "evaporationHeat": "-", - "thermalConductivity": 117, - "paulingNegativity": 2.2, - "firstIonizationPotential": 710.3, - "oxidationStates": "8, 6, 4, 3, 2, 0, -2", - "electronicConfiguration": "[Kr]4d5s¹", - "latticeStructure": "HEX", - "latticeConstant": 2.7 - }, - "Rhodium": { - "symbol": "Rh", - "atomicNumber": 45, - "atomicWeight": 102.9055, - "density": 12.41, - "meltingPoint": 2239, - "boilingPoint": 4000, - "atomicRadius": 134, - "covalentRadius": 125, - "ionicRadius": "", - "atomicVolume": 8.3, - "specificHeat": 0.244, - "fusionHeat": 21.8, - "evaporationHeat": 494, - "thermalConductivity": 150, - "paulingNegativity": 2.28, - "firstIonizationPotential": 719.5, - "oxidationStates": "5, 4, 3, 2, 1, 0", - "electronicConfiguration": "[Kr]4d5s¹", - "latticeStructure": "FCC", - "latticeConstant": 3.8 - }, - "Palladium": { - "symbol": "Pd", - "atomicNumber": 46, - "atomicWeight": 106.42, - "density": 12.02, - "meltingPoint": 1825, - "boilingPoint": 3413, - "atomicRadius": 137, - "covalentRadius": 128, - "ionicRadius": "", - "atomicVolume": 8.9, - "specificHeat": 0.244, - "fusionHeat": 17.24, - "evaporationHeat": 372.4, - "thermalConductivity": 71.8, - "paulingNegativity": 2.2, - "firstIonizationPotential": 803.5, - "oxidationStates": "4, 2, 0", - "electronicConfiguration": "[Kr]4d5s", - "latticeStructure": "FCC", - "latticeConstant": 3.89 - }, - "Silver": { - "symbol": "Ag", - "atomicNumber": 47, - "atomicWeight": 107.8682, - "density": 10.5, - "meltingPoint": 1235.1, - "boilingPoint": 2485, - "atomicRadius": 144, - "covalentRadius": 134, - "ionicRadius": "", - "atomicVolume": 10.3, - "specificHeat": 0.237, - "fusionHeat": 11.95, - "evaporationHeat": 254.1, - "thermalConductivity": 429, - "paulingNegativity": 1.93, - "firstIonizationPotential": 730.5, - "oxidationStates": "2, 1", - "electronicConfiguration": "[Kr]4d5s¹", - "latticeStructure": "FCC", - "latticeConstant": 4.09 - }, - "Cadmium": { - "symbol": "Cd", - "atomicNumber": 48, - "atomicWeight": 112.411, - "density": 8.65, - "meltingPoint": 594.1, - "boilingPoint": 1038, - "atomicRadius": 154, - "covalentRadius": 148, - "ionicRadius": "", - "atomicVolume": 13.1, - "specificHeat": 0.232, - "fusionHeat": 6.11, - "evaporationHeat": 59.1, - "thermalConductivity": 96.9, - "paulingNegativity": 1.69, - "firstIonizationPotential": 867.2, - "oxidationStates": 2, - "electronicConfiguration": "[Kr]4d5s²", - "latticeStructure": "HEX", - "latticeConstant": 2.98 - }, - "Indium": { - "symbol": "In", - "atomicNumber": 49, - "atomicWeight": 114.818, - "density": 7.31, - "meltingPoint": 429.32, - "boilingPoint": 2353, - "atomicRadius": 166, - "covalentRadius": 144, - "ionicRadius": "", - "atomicVolume": 15.7, - "specificHeat": 0.234, - "fusionHeat": 3.24, - "evaporationHeat": 225.1, - "thermalConductivity": 81.8, - "paulingNegativity": 1.78, - "firstIonizationPotential": 558, - "oxidationStates": 3, - "electronicConfiguration": "[Kr]4d5s²5p¹", - "latticeStructure": "TET", - "latticeConstant": 4.59 - }, - "Tin": { - "symbol": "Sn", - "atomicNumber": 50, - "atomicWeight": 118.71, - "density": 7.31, - "meltingPoint": 505.1, - "boilingPoint": 2543, - "atomicRadius": 162, - "covalentRadius": 141, - "ionicRadius": "", - "atomicVolume": 16.3, - "specificHeat": 0.222, - "fusionHeat": 7.07, - "evaporationHeat": 296, - "thermalConductivity": 66.8, - "paulingNegativity": 1.96, - "firstIonizationPotential": 708.2, - "oxidationStates": "4, 2", - "electronicConfiguration": "[Kr]4d5s²5p²", - "latticeStructure": "TET", - "latticeConstant": 5.82 - }, - "Antimony": { - "symbol": "Sb", - "atomicNumber": 51, - "atomicWeight": 121.76, - "density": 6.691, - "meltingPoint": 903.9, - "boilingPoint": 1908, - "atomicRadius": 159, - "covalentRadius": 140, - "ionicRadius": "", - "atomicVolume": 18.4, - "specificHeat": 0.205, - "fusionHeat": 20.08, - "evaporationHeat": 195.2, - "thermalConductivity": 24.43, - "paulingNegativity": 2.05, - "firstIonizationPotential": 833.3, - "oxidationStates": "5, 3, -2", - "electronicConfiguration": "[Kr]4d5s²5p³", - "latticeStructure": "RHL", - "latticeConstant": 4.51 - }, - "Tellurium": { - "symbol": "Te", - "atomicNumber": 52, - "atomicWeight": 127.6, - "density": 6.24, - "meltingPoint": 722.7, - "boilingPoint": 1263, - "atomicRadius": 160, - "covalentRadius": 136, - "ionicRadius": "", - "atomicVolume": 20.5, - "specificHeat": 0.201, - "fusionHeat": 17.91, - "evaporationHeat": 49.8, - "thermalConductivity": 14.3, - "paulingNegativity": 2.1, - "firstIonizationPotential": 869, - "oxidationStates": "6, 4, 2", - "electronicConfiguration": "[Kr]4d5s²5p", - "latticeStructure": "HEX", - "latticeConstant": 4.45 - }, - "Iodine": { - "symbol": "I", - "atomicNumber": 53, - "atomicWeight": 126.90447, - "density": 4.93, - "meltingPoint": 386.7, - "boilingPoint": 457.5, - "atomicRadius": "-", - "covalentRadius": 133, - "ionicRadius": "", - "atomicVolume": 25.7, - "specificHeat": "0.427 (I-I)", - "fusionHeat": "15.52 (I-I)", - "evaporationHeat": "41.95 (I-I)", - "thermalConductivity": "(0.45)", - "paulingNegativity": 2.66, - "firstIonizationPotential": 1008.3, - "oxidationStates": "7, 5, 1, -1", - "electronicConfiguration": "[Kr]4d5s²5p", - "latticeStructure": "ORC", - "latticeConstant": 7.72 - }, - "Xenon": { - "symbol": "Xe", - "atomicNumber": 54, - "atomicWeight": 131.29, - "density": "3.52 (@ -109°C)", - "meltingPoint": 161.3, - "boilingPoint": 166.1, - "atomicRadius": "-", - "covalentRadius": 131, - "ionicRadius": "", - "atomicVolume": 42.9, - "specificHeat": 0.158, - "fusionHeat": "-", - "evaporationHeat": 12.65, - "thermalConductivity": 0.0057, - "paulingNegativity": 0, - "firstIonizationPotential": 1170, - "oxidationStates": 7, - "electronicConfiguration": "[Kr]4d5s²5p", - "latticeStructure": "FCC", - "latticeConstant": 6.2 - }, - "Cesium": { - "symbol": "Cs", - "atomicNumber": 55, - "atomicWeight": 132.90543, - "density": 1.873, - "meltingPoint": 301.6, - "boilingPoint": 951.6, - "atomicRadius": 267, - "covalentRadius": 235, - "ionicRadius": "", - "atomicVolume": 70, - "specificHeat": 0.241, - "fusionHeat": 2.09, - "evaporationHeat": 68.3, - "thermalConductivity": 35.9, - "paulingNegativity": 0.79, - "firstIonizationPotential": 375.5, - "oxidationStates": 1, - "electronicConfiguration": "[Xe]6s¹", - "latticeStructure": "BCC", - "latticeConstant": 6.05 - }, - "Barium": { - "symbol": "Ba", - "atomicNumber": 56, - "atomicWeight": 137.327, - "density": 3.5, - "meltingPoint": 1002, - "boilingPoint": 1910, - "atomicRadius": 222, - "covalentRadius": 198, - "ionicRadius": "", - "atomicVolume": 39, - "specificHeat": 0.192, - "fusionHeat": 7.66, - "evaporationHeat": 142, - "thermalConductivity": "(18.4)", - "paulingNegativity": 0.89, - "firstIonizationPotential": 502.5, - "oxidationStates": 2, - "electronicConfiguration": "[Xe]6s²", - "latticeStructure": "BCC", - "latticeConstant": 5.02 - }, - "Lanthanum": { - "symbol": "La", - "atomicNumber": 57, - "atomicWeight": 138.9055, - "density": 6.15, - "meltingPoint": 1194, - "boilingPoint": 3730, - "atomicRadius": 187, - "covalentRadius": 169, - "ionicRadius": "", - "atomicVolume": 22.5, - "specificHeat": 0.197, - "fusionHeat": 8.5, - "evaporationHeat": 402, - "thermalConductivity": 13.4, - "paulingNegativity": 1.1, - "firstIonizationPotential": 541.1, - "oxidationStates": 3, - "electronicConfiguration": "[Xe]6d¹6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.75 - }, - "Cerium": { - "symbol": "Ce", - "atomicNumber": 58, - "atomicWeight": 140.115, - "density": 6.757, - "meltingPoint": 1072, - "boilingPoint": 3699, - "atomicRadius": 181, - "covalentRadius": 165, - "ionicRadius": "", - "atomicVolume": 21, - "specificHeat": 0.205, - "fusionHeat": 5.2, - "evaporationHeat": 398, - "thermalConductivity": 11.3, - "paulingNegativity": 1.12, - "firstIonizationPotential": 540.1, - "oxidationStates": "4, 3", - "electronicConfiguration": "[Xe]4f¹5d¹6s²", - "latticeStructure": "FCC", - "latticeConstant": 5.16 - }, - "Praseodymium": { - "symbol": "Pr", - "atomicNumber": 59, - "atomicWeight": 140.90765, - "density": 6.773, - "meltingPoint": 1204, - "boilingPoint": 3785, - "atomicRadius": 182, - "covalentRadius": 165, - "ionicRadius": "", - "atomicVolume": 20.8, - "specificHeat": 0.192, - "fusionHeat": 11.3, - "evaporationHeat": 331, - "thermalConductivity": 12.5, - "paulingNegativity": 1.13, - "firstIonizationPotential": 526.6, - "oxidationStates": "4, 3", - "electronicConfiguration": "[Xe]4f³5d6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.67 - }, - "Neodymium": { - "symbol": "Nd", - "atomicNumber": 60, - "atomicWeight": 144.24, - "density": 7.007, - "meltingPoint": 1294, - "boilingPoint": 3341, - "atomicRadius": 182, - "covalentRadius": 184, - "ionicRadius": "", - "atomicVolume": 20.6, - "specificHeat": 0.205, - "fusionHeat": 7.1, - "evaporationHeat": 289, - "thermalConductivity": "(16.5)", - "paulingNegativity": 1.14, - "firstIonizationPotential": 531.5, - "oxidationStates": 3, - "electronicConfiguration": "[Xe]4f5d6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.66 - }, - "Promethium": { - "symbol": "Pm", - "atomicNumber": 61, - "atomicWeight": 144.9127, - "density": 7.2, - "meltingPoint": 1441, - "boilingPoint": 3000, - "atomicRadius": "-", - "covalentRadius": 163, - "ionicRadius": "", - "atomicVolume": "-", - "specificHeat": 0.185, - "fusionHeat": "-", - "evaporationHeat": "-", - "thermalConductivity": 17.9, - "paulingNegativity": 0, - "firstIonizationPotential": 536, - "oxidationStates": 3, - "electronicConfiguration": "[Xe]4f5d6s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Samarium": { - "symbol": "Sm", - "atomicNumber": 62, - "atomicWeight": 150.36, - "density": 7.52, - "meltingPoint": 1350, - "boilingPoint": 2064, - "atomicRadius": 181, - "covalentRadius": 162, - "ionicRadius": "", - "atomicVolume": 19.9, - "specificHeat": 0.18, - "fusionHeat": 8.9, - "evaporationHeat": 165, - "thermalConductivity": "(13.3)", - "paulingNegativity": 1.17, - "firstIonizationPotential": 540.1, - "oxidationStates": "3, 2", - "electronicConfiguration": "[Xe]4f5d6s²", - "latticeStructure": "RHL", - "latticeConstant": 9 - }, - "Europium": { - "symbol": "Eu", - "atomicNumber": 63, - "atomicWeight": 151.965, - "density": 5.243, - "meltingPoint": 1095, - "boilingPoint": 1870, - "atomicRadius": 199, - "covalentRadius": 185, - "ionicRadius": "", - "atomicVolume": 28.9, - "specificHeat": 0.176, - "fusionHeat": "-", - "evaporationHeat": 176, - "thermalConductivity": 13.9, - "paulingNegativity": 0, - "firstIonizationPotential": 546.9, - "oxidationStates": "3, 2", - "electronicConfiguration": "[Xe]4f5d6s²", - "latticeStructure": "BCC", - "latticeConstant": 4.61 - }, - "Gadolinium": { - "symbol": "Gd", - "atomicNumber": 64, - "atomicWeight": 157.25, - "density": 7.9, - "meltingPoint": 1586, - "boilingPoint": 3539, - "atomicRadius": 179, - "covalentRadius": 161, - "ionicRadius": "", - "atomicVolume": 19.9, - "specificHeat": 0.23, - "fusionHeat": "-", - "evaporationHeat": 398, - "thermalConductivity": "(10.5)", - "paulingNegativity": 1.2, - "firstIonizationPotential": 594.2, - "oxidationStates": 3, - "electronicConfiguration": "[Xe]4f5d¹6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.64 - }, - "Terbium": { - "symbol": "Tb", - "atomicNumber": 65, - "atomicWeight": 158.92534, - "density": 8.229, - "meltingPoint": 1629, - "boilingPoint": 3296, - "atomicRadius": 180, - "covalentRadius": 159, - "ionicRadius": "", - "atomicVolume": 19.2, - "specificHeat": 0.183, - "fusionHeat": "-", - "evaporationHeat": 389, - "thermalConductivity": 11.1, - "paulingNegativity": 1.2, - "firstIonizationPotential": 569, - "oxidationStates": "4, 3", - "electronicConfiguration": "[Xe]4f5d6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.6 - }, - "Dysprosium": { - "symbol": "Dy", - "atomicNumber": 66, - "atomicWeight": 162.5, - "density": 8.55, - "meltingPoint": 1685, - "boilingPoint": 2835, - "atomicRadius": 180, - "covalentRadius": 159, - "ionicRadius": "", - "atomicVolume": 19, - "specificHeat": 0.173, - "fusionHeat": "-", - "evaporationHeat": 291, - "thermalConductivity": 10.7, - "paulingNegativity": "-", - "firstIonizationPotential": 567, - "oxidationStates": 3, - "electronicConfiguration": "[Xe]4f5d6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.59 - }, - "Holmium": { - "symbol": "Ho", - "atomicNumber": 67, - "atomicWeight": 164.93032, - "density": 8.795, - "meltingPoint": 1747, - "boilingPoint": 2968, - "atomicRadius": 179, - "covalentRadius": 158, - "ionicRadius": "", - "atomicVolume": 18.7, - "specificHeat": 0.164, - "fusionHeat": "-", - "evaporationHeat": 301, - "thermalConductivity": "(16.2)", - "paulingNegativity": 1.23, - "firstIonizationPotential": 574, - "oxidationStates": 3, - "electronicConfiguration": "[Xe]4f¹¹5d6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.58 - }, - "Erbium": { - "symbol": "Er", - "atomicNumber": 68, - "atomicWeight": 167.26, - "density": 9.06, - "meltingPoint": 1802, - "boilingPoint": 3136, - "atomicRadius": 178, - "covalentRadius": 157, - "ionicRadius": "", - "atomicVolume": 18.4, - "specificHeat": 0.168, - "fusionHeat": "-", - "evaporationHeat": 317, - "thermalConductivity": "(14.5)", - "paulingNegativity": 1.24, - "firstIonizationPotential": 581, - "oxidationStates": 3, - "electronicConfiguration": "[Xe]4f¹²5d6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.56 - }, - "Thulium": { - "symbol": "Tm", - "atomicNumber": 69, - "atomicWeight": 168.93421, - "density": 9.321, - "meltingPoint": 1818, - "boilingPoint": 2220, - "atomicRadius": 177, - "covalentRadius": 156, - "ionicRadius": "", - "atomicVolume": 18.1, - "specificHeat": 0.16, - "fusionHeat": "-", - "evaporationHeat": 232, - "thermalConductivity": "(16.9)", - "paulingNegativity": 1.25, - "firstIonizationPotential": 589, - "oxidationStates": "3, 2", - "electronicConfiguration": "[Xe]4f¹³5d6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.54 - }, - "Ytterbium": { - "symbol": "Yb", - "atomicNumber": 70, - "atomicWeight": 173.04, - "density": 6.9654, - "meltingPoint": 1097, - "boilingPoint": 1466, - "atomicRadius": 194, - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": 24.8, - "specificHeat": 0.145, - "fusionHeat": 3.35, - "evaporationHeat": 159, - "thermalConductivity": "(34.9)", - "paulingNegativity": 1.1, - "firstIonizationPotential": 603, - "oxidationStates": "3, 2", - "electronicConfiguration": "[Xe]4f¹5d¹6s²", - "latticeStructure": "FCC", - "latticeConstant": 5.49 - }, - "Lutetium": { - "symbol": "Lu", - "atomicNumber": 71, - "atomicWeight": 174.967, - "density": 9.8404, - "meltingPoint": 1936, - "boilingPoint": 3668, - "atomicRadius": 175, - "covalentRadius": 156, - "ionicRadius": "", - "atomicVolume": 17.8, - "specificHeat": 0.155, - "fusionHeat": "-", - "evaporationHeat": 414, - "thermalConductivity": "(16.4)", - "paulingNegativity": 1.27, - "firstIonizationPotential": 513, - "oxidationStates": 3, - "electronicConfiguration": "[Xe]4f¹5d¹6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.51 - }, - "Hafnium": { - "symbol": "Hf", - "atomicNumber": 72, - "atomicWeight": 178.49, - "density": 13.31, - "meltingPoint": 2503, - "boilingPoint": 5470, - "atomicRadius": 167, - "covalentRadius": 144, - "ionicRadius": "", - "atomicVolume": 13.6, - "specificHeat": 0.146, - "fusionHeat": "(25.1)", - "evaporationHeat": 575, - "thermalConductivity": 23, - "paulingNegativity": 1.3, - "firstIonizationPotential": 575.2, - "oxidationStates": 4, - "electronicConfiguration": "[Xe]4f¹5d²6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.2 - }, - "Tantalum": { - "symbol": "Ta", - "atomicNumber": 73, - "atomicWeight": 180.9479, - "density": 16.654, - "meltingPoint": 3269, - "boilingPoint": 5698, - "atomicRadius": 149, - "covalentRadius": 134, - "ionicRadius": "", - "atomicVolume": 10.9, - "specificHeat": 0.14, - "fusionHeat": 24.7, - "evaporationHeat": 758, - "thermalConductivity": 57.5, - "paulingNegativity": 1.5, - "firstIonizationPotential": 760.1, - "oxidationStates": 5, - "electronicConfiguration": "[Xe]4f¹5d³6s²", - "latticeStructure": "BCC", - "latticeConstant": 3.31 - }, - "Tungsten": { - "symbol": "W", - "atomicNumber": 74, - "atomicWeight": 183.84, - "density": 19.3, - "meltingPoint": 3680, - "boilingPoint": 5930, - "atomicRadius": 141, - "covalentRadius": 130, - "ionicRadius": "", - "atomicVolume": 9.53, - "specificHeat": 0.133, - "fusionHeat": "(35)", - "evaporationHeat": 824, - "thermalConductivity": 173, - "paulingNegativity": 1.7, - "firstIonizationPotential": 769.7, - "oxidationStates": "6, 5, 4, 3, 2, 0", - "electronicConfiguration": "[Xe]4f¹5d6s²", - "latticeStructure": "BCC", - "latticeConstant": 3.16 - }, - "Rhenium": { - "symbol": "Re", - "atomicNumber": 75, - "atomicWeight": 186.207, - "density": 21.02, - "meltingPoint": 3453, - "boilingPoint": 5900, - "atomicRadius": 137, - "covalentRadius": 128, - "ionicRadius": "", - "atomicVolume": 8.85, - "specificHeat": 0.138, - "fusionHeat": 34, - "evaporationHeat": 704, - "thermalConductivity": 48, - "paulingNegativity": 1.9, - "firstIonizationPotential": 759.1, - "oxidationStates": "5, 4, 3, 2, -1", - "electronicConfiguration": "[Xe]4f¹5d6s²", - "latticeStructure": "HEX", - "latticeConstant": 2.76 - }, - "Osmium": { - "symbol": "Os", - "atomicNumber": 76, - "atomicWeight": 190.23, - "density": 22.57, - "meltingPoint": 3327, - "boilingPoint": 5300, - "atomicRadius": 135, - "covalentRadius": 126, - "ionicRadius": "", - "atomicVolume": 8.43, - "specificHeat": 0.131, - "fusionHeat": 31.7, - "evaporationHeat": 738, - "thermalConductivity": "(87.6)", - "paulingNegativity": 2.2, - "firstIonizationPotential": 819.8, - "oxidationStates": "8, 6, 4, 3, 2, 0, -2", - "electronicConfiguration": "[Xe]4f¹5d6s²", - "latticeStructure": "HEX", - "latticeConstant": 2.74 - }, - "Iridium": { - "symbol": "Ir", - "atomicNumber": 77, - "atomicWeight": 192.22, - "density": 22.42, - "meltingPoint": 2683, - "boilingPoint": 4403, - "atomicRadius": 136, - "covalentRadius": 127, - "ionicRadius": "", - "atomicVolume": 8.54, - "specificHeat": 0.133, - "fusionHeat": 27.61, - "evaporationHeat": 604, - "thermalConductivity": 147, - "paulingNegativity": 2.2, - "firstIonizationPotential": 868.1, - "oxidationStates": "6, 4, 3, 2, 1, 0, -1", - "electronicConfiguration": "[Xe]4f¹5d6s²", - "latticeStructure": "FCC", - "latticeConstant": 3.84 - }, - "Platinum": { - "symbol": "Pt", - "atomicNumber": 78, - "atomicWeight": 195.08, - "density": 21.45, - "meltingPoint": 2045, - "boilingPoint": 4100, - "atomicRadius": 139, - "covalentRadius": 130, - "ionicRadius": "", - "atomicVolume": 9.1, - "specificHeat": 0.133, - "fusionHeat": 21.76, - "evaporationHeat": "~470", - "thermalConductivity": 71.6, - "paulingNegativity": 2.28, - "firstIonizationPotential": 868.1, - "oxidationStates": "4, 2, 0", - "electronicConfiguration": "[Xe]4f¹5d6s²", - "latticeStructure": "FCC", - "latticeConstant": 3.92 - }, - "Gold": { - "symbol": "Au", - "atomicNumber": 79, - "atomicWeight": 196.96654, - "density": 19.3, - "meltingPoint": 1337.58, - "boilingPoint": 3080, - "atomicRadius": 146, - "covalentRadius": 134, - "ionicRadius": "", - "atomicVolume": 10.2, - "specificHeat": 0.129, - "fusionHeat": 12.68, - "evaporationHeat": "~340", - "thermalConductivity": 318, - "paulingNegativity": 2.54, - "firstIonizationPotential": 889.3, - "oxidationStates": "3, 1", - "electronicConfiguration": "[Xe]4f¹5d¹6s²", - "latticeStructure": "FCC", - "latticeConstant": 4.08 - }, - "Mercury": { - "symbol": "Hg", - "atomicNumber": 80, - "atomicWeight": 200.59, - "density": "13.546 (@ +20°C)", - "meltingPoint": 234.28, - "boilingPoint": 629.73, - "atomicRadius": 157, - "covalentRadius": 149, - "ionicRadius": "", - "atomicVolume": 14.8, - "specificHeat": 0.138, - "fusionHeat": 2.295, - "evaporationHeat": 58.5, - "thermalConductivity": 8.3, - "paulingNegativity": 2, - "firstIonizationPotential": 1006, - "oxidationStates": "2, 1", - "electronicConfiguration": "[Xe]4f¹5d¹6s²", - "latticeStructure": "RHL", - "latticeConstant": 2.99 - }, - "Thallium": { - "symbol": "Tl", - "atomicNumber": 81, - "atomicWeight": 204.3833, - "density": 11.85, - "meltingPoint": 576.6, - "boilingPoint": 1730, - "atomicRadius": 171, - "covalentRadius": 148, - "ionicRadius": "", - "atomicVolume": 17.2, - "specificHeat": 0.128, - "fusionHeat": 4.31, - "evaporationHeat": 162.4, - "thermalConductivity": 46.1, - "paulingNegativity": 1.62, - "firstIonizationPotential": 588.9, - "oxidationStates": "3, 1", - "electronicConfiguration": "[Xe]4f¹5d¹6s²6p¹", - "latticeStructure": "HEX", - "latticeConstant": 3.46 - }, - "Lead": { - "symbol": "Pb", - "atomicNumber": 82, - "atomicWeight": 207.2, - "density": 11.35, - "meltingPoint": 600.65, - "boilingPoint": 2013, - "atomicRadius": 175, - "covalentRadius": 147, - "ionicRadius": "", - "atomicVolume": 18.3, - "specificHeat": 0.159, - "fusionHeat": 4.77, - "evaporationHeat": 177.8, - "thermalConductivity": 35.3, - "paulingNegativity": 1.8, - "firstIonizationPotential": 715.2, - "oxidationStates": "4, 2", - "electronicConfiguration": "[Xe]4f¹5d¹6s²6p²", - "latticeStructure": "FCC", - "latticeConstant": 4.95 - }, - "Bismuth": { - "symbol": "Bi", - "atomicNumber": 83, - "atomicWeight": 208.98037, - "density": 9.747, - "meltingPoint": 544.5, - "boilingPoint": 1883, - "atomicRadius": 170, - "covalentRadius": 146, - "ionicRadius": "", - "atomicVolume": 21.3, - "specificHeat": 0.124, - "fusionHeat": 11, - "evaporationHeat": 172, - "thermalConductivity": 7.9, - "paulingNegativity": 2.02, - "firstIonizationPotential": 702.9, - "oxidationStates": "5, 3", - "electronicConfiguration": "[Xe]4f¹5d¹6s²6p³", - "latticeStructure": "RHL", - "latticeConstant": 4.75 - }, - "Polonium": { - "symbol": "Po", - "atomicNumber": 84, - "atomicWeight": 208.9824, - "density": 9.32, - "meltingPoint": 527, - "boilingPoint": 1235, - "atomicRadius": 176, - "covalentRadius": 146, - "ionicRadius": "", - "atomicVolume": 22.7, - "specificHeat": 0.125, - "fusionHeat": "(10)", - "evaporationHeat": "(102.9)", - "thermalConductivity": "-", - "paulingNegativity": 2, - "firstIonizationPotential": 813.1, - "oxidationStates": "6, 4, 2", - "electronicConfiguration": "[Xe]4f¹5d¹6s²6p", - "latticeStructure": "SC", - "latticeConstant": 3.35 - }, - "Astatine": { - "symbol": "At", - "atomicNumber": 85, - "atomicWeight": 209.9871, - "density": "n/a", - "meltingPoint": 575, - "boilingPoint": 610, - "atomicRadius": "-", - "covalentRadius": "(145)", - "ionicRadius": "", - "atomicVolume": "-", - "specificHeat": "-", - "fusionHeat": "-", - "evaporationHeat": "-", - "thermalConductivity": "-", - "paulingNegativity": 2.2, - "firstIonizationPotential": 916.3, - "oxidationStates": "7, 5, 3, 1, -1", - "electronicConfiguration": "[Xe]4f¹5d¹6s²6p", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Radon": { - "symbol": "Rn", - "atomicNumber": 86, - "atomicWeight": 222.0176, - "density": "4.4 (@ -62°C)", - "meltingPoint": 202, - "boilingPoint": 211.4, - "atomicRadius": "-", - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": "-", - "specificHeat": 0.094, - "fusionHeat": "-", - "evaporationHeat": 18.1, - "thermalConductivity": 0.0036, - "paulingNegativity": "-", - "firstIonizationPotential": 1036.5, - "oxidationStates": "-", - "electronicConfiguration": "[Xe]4f¹5d¹6s²6p", - "latticeStructure": "FCC", - "latticeConstant": "n/a" - }, - "Francium": { - "symbol": "Fr", - "atomicNumber": 87, - "atomicWeight": 223.0197, - "density": "n/a", - "meltingPoint": 300, - "boilingPoint": 950, - "atomicRadius": "-", - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": "-", - "specificHeat": "-", - "fusionHeat": 15, - "evaporationHeat": "-", - "thermalConductivity": "-", - "paulingNegativity": 0.7, - "firstIonizationPotential": "~375", - "oxidationStates": 2, - "electronicConfiguration": "[Rn]7s¹", - "latticeStructure": "BCC", - "latticeConstant": "n/a" - }, - "Radium": { - "symbol": "Ra", - "atomicNumber": 88, - "atomicWeight": 226.0254, - "density": "(5.5)", - "meltingPoint": 973, - "boilingPoint": 1413, - "atomicRadius": "-", - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": 45, - "specificHeat": 0.12, - "fusionHeat": "(9.6)", - "evaporationHeat": "(113)", - "thermalConductivity": "(18.6)", - "paulingNegativity": 0.9, - "firstIonizationPotential": 509, - "oxidationStates": 2, - "electronicConfiguration": "[Rn]7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Actinium": { - "symbol": "Ac", - "atomicNumber": 89, - "atomicWeight": 227.0278, - "density": "n/a", - "meltingPoint": 1320, - "boilingPoint": 3470, - "atomicRadius": 188, - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": 22.54, - "specificHeat": "-", - "fusionHeat": "(10.5)", - "evaporationHeat": "(292.9)", - "thermalConductivity": "-", - "paulingNegativity": 1.1, - "firstIonizationPotential": 665.5, - "oxidationStates": 3, - "electronicConfiguration": "[Rn]6d¹7s²", - "latticeStructure": "FCC", - "latticeConstant": 5.31 - }, - "Thorium": { - "symbol": "Th", - "atomicNumber": 90, - "atomicWeight": 232.0381, - "density": 11.78, - "meltingPoint": 2028, - "boilingPoint": 5060, - "atomicRadius": 180, - "covalentRadius": 165, - "ionicRadius": "", - "atomicVolume": 19.8, - "specificHeat": 0.113, - "fusionHeat": 16.11, - "evaporationHeat": 513.7, - "thermalConductivity": "(54.0)", - "paulingNegativity": 1.3, - "firstIonizationPotential": 670.4, - "oxidationStates": 4, - "electronicConfiguration": "[Rn]5f6d¹7s²", - "latticeStructure": "FCC", - "latticeConstant": 5.08 - }, - "Protactinium": { - "symbol": "Pa", - "atomicNumber": 91, - "atomicWeight": 231.03588, - "density": 15.37, - "meltingPoint": 2113, - "boilingPoint": 4300, - "atomicRadius": 161, - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": 15, - "specificHeat": 0.121, - "fusionHeat": 16.7, - "evaporationHeat": 481.2, - "thermalConductivity": "-", - "paulingNegativity": 1.5, - "firstIonizationPotential": "n/a", - "oxidationStates": "5, 4", - "electronicConfiguration": "[Rn]5f²6d¹7s²", - "latticeStructure": "TET", - "latticeConstant": 3.92 - }, - "Uranium": { - "symbol": "U", - "atomicNumber": 92, - "atomicWeight": 238.0289, - "density": 19.05, - "meltingPoint": 1405.5, - "boilingPoint": 4018, - "atomicRadius": 138, - "covalentRadius": 142, - "ionicRadius": "", - "atomicVolume": 12.5, - "specificHeat": 0.115, - "fusionHeat": 12.6, - "evaporationHeat": 417, - "thermalConductivity": 27.5, - "paulingNegativity": 1.38, - "firstIonizationPotential": 686.4, - "oxidationStates": "6, 5, 4, 3", - "electronicConfiguration": "[Rn]5f³6d¹7s²", - "latticeStructure": "ORC", - "latticeConstant": 2.85 - }, - "Neptunium": { - "symbol": "Np", - "atomicNumber": 93, - "atomicWeight": 237.048, - "density": 20.25, - "meltingPoint": 913, - "boilingPoint": 4175, - "atomicRadius": 130, - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": 21.1, - "specificHeat": "-", - "fusionHeat": "(9.6)", - "evaporationHeat": 336, - "thermalConductivity": "(6.3)", - "paulingNegativity": 1.36, - "firstIonizationPotential": "n/a", - "oxidationStates": "6, 5, 4, 3", - "electronicConfiguration": "[Rn]5f6d¹7s²", - "latticeStructure": "ORC", - "latticeConstant": 4.72 - }, - "Plutonium": { - "symbol": "Pu", - "atomicNumber": 94, - "atomicWeight": 244.0642, - "density": 19.84, - "meltingPoint": 914, - "boilingPoint": 3505, - "atomicRadius": 151, - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": "-", - "specificHeat": "-", - "fusionHeat": 2.8, - "evaporationHeat": 343.5, - "thermalConductivity": "(6.7)", - "paulingNegativity": 1.28, - "firstIonizationPotential": 491.9, - "oxidationStates": "6, 5, 4, 3", - "electronicConfiguration": "[Rn]5f6d7s²", - "latticeStructure": "MCL", - "latticeConstant": "n/a" - }, - "Americium": { - "symbol": "Am", - "atomicNumber": 95, - "atomicWeight": 243.0614, - "density": 13.67, - "meltingPoint": 1267, - "boilingPoint": 2880, - "atomicRadius": 173, - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": 20.8, - "specificHeat": "-", - "fusionHeat": "(10.0)", - "evaporationHeat": 238.5, - "thermalConductivity": "-", - "paulingNegativity": 1.3, - "firstIonizationPotential": "n/a", - "oxidationStates": "6, 5, 4, 3", - "electronicConfiguration": "[Rn]5f6d7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Curium": { - "symbol": "Cm", - "atomicNumber": 96, - "atomicWeight": 247.0703, - "density": 13.51, - "meltingPoint": 1340, - "boilingPoint": "n/a", - "atomicRadius": 299, - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": 18.28, - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": 1.3, - "firstIonizationPotential": "(580)", - "oxidationStates": "4, 3", - "electronicConfiguration": "[Rn]5f6d¹7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/A" - }, - "Berkelium": { - "symbol": "Bk", - "atomicNumber": 97, - "atomicWeight": 247.0703, - "density": 13.25, - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": 297, - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": 1.3, - "firstIonizationPotential": "(600)", - "oxidationStates": "4, 3", - "electronicConfiguration": "[Rn]5f6d7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Californium": { - "symbol": "Cf", - "atomicNumber": 98, - "atomicWeight": 251.0796, - "density": 15.1, - "meltingPoint": 900, - "boilingPoint": "n/a", - "atomicRadius": 295, - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": 1.3, - "firstIonizationPotential": "(610)", - "oxidationStates": "4, 3", - "electronicConfiguration": "[Rn]5f¹6d7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Einsteinium": { - "symbol": "Es", - "atomicNumber": 99, - "atomicWeight": 252.083, - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": 1130, - "atomicRadius": 292, - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": 1.3, - "firstIonizationPotential": "(620)", - "oxidationStates": 3, - "electronicConfiguration": "[Rn]5f¹¹6d7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Fermium": { - "symbol": "Fm", - "atomicNumber": 100, - "atomicWeight": 257.0951, - "density": "n/a", - "meltingPoint": 1800, - "boilingPoint": "n/a", - "atomicRadius": 290, - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": 1.3, - "firstIonizationPotential": "(630)", - "oxidationStates": 3, - "electronicConfiguration": "[Rn]5f¹²6d7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Mendelevium": { - "symbol": "Md", - "atomicNumber": 101, - "atomicWeight": 258.1, - "density": "n/a", - "meltingPoint": 1100, - "boilingPoint": "n/a", - "atomicRadius": 287, - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": 1.3, - "firstIonizationPotential": "(635)", - "oxidationStates": 3, - "electronicConfiguration": "[Rn]5f¹³6d7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Nobelium": { - "symbol": "No", - "atomicNumber": 102, - "atomicWeight": 259.1009, - "density": "n/a", - "meltingPoint": 1100, - "boilingPoint": "n/a", - "atomicRadius": 285, - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": 1.3, - "firstIonizationPotential": "(640)", - "oxidationStates": "3,2", - "electronicConfiguration": "[Rn]5f¹6d7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Lawrencium": { - "symbol": "Lr", - "atomicNumber": 103, - "atomicWeight": 262.11, - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": 282, - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": 3, - "electronicConfiguration": "[Rn]5f¹6d¹7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Rutherfordium": { - "symbol": "Rf", - "atomicNumber": 104, - "atomicWeight": "[261]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "-", - "electronicConfiguration": "[Rn]5f¹6d²7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Dubnium": { - "symbol": "Db", - "atomicNumber": 105, - "atomicWeight": "[262]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "-", - "electronicConfiguration": "[Rn]5f¹6d³6s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Seaborgium": { - "symbol": "Sg", - "atomicNumber": 106, - "atomicWeight": "[266]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "-", - "electronicConfiguration": "[Rn]5f¹6d¹7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Bohrium": { - "symbol": "Bh", - "atomicNumber": 107, - "atomicWeight": "[264]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Hassium": { - "name": "Hassium", - "symbol": "Hs", - "atomicNumber": 108, - "atomicWeight": "[269]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Meitnerium": { - "name": "Meitnerium", - "symbol": "Mt", - "atomicNumber": 109, - "atomicWeight": "[268]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Ununnilium": { - "name": "Ununnilium", - "symbol": "Uun", - "atomicNumber": 110, - "atomicWeight": "[269]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Unununium": { - "name": "Unununium", - "symbol": "Uuu", - "atomicNumber": 111, - "atomicWeight": "[272]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Ununbium": { - "name": "Ununbium", - "symbol": "Uub", - "atomicNumber": 112, - "atomicWeight": "[277]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Ununtrium": { - "name": "Ununtrium", - "symbol": "Uut", - "atomicNumber": 113, - "atomicWeight": "n/a", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Ununquadium": { - "name": "Ununquadium", - "symbol": "Uuq", - "atomicNumber": 114, - "atomicWeight": "[289]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Ununpentium": { - "name": "Ununpentium", - "symbol": "Uup", - "atomicNumber": 115, - "atomicWeight": "n/a", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Ununhexium": { - "name": "Ununhexium", - "symbol": "Uuh", - "atomicNumber": 116, - "atomicWeight": "n/a", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Ununseptium": { - "name": "Ununseptium", - "symbol": "Uus", - "atomicNumber": 117, - "atomicWeight": "n/a", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - "Ununoctium": { - "name": "Ununoctium", - "symbol": "Uuo", - "atomicNumber": 118, - "atomicWeight": "n/a", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - } -} diff --git a/example/material/fingerprint.json b/example/material/fingerprint.json index b6cfc6e97..6867ea432 100644 --- a/example/material/fingerprint.json +++ b/example/material/fingerprint.json @@ -1,6 +1,6 @@ { "primary": { - "...": "include(primary/primary.json)" + "...": "include(fingerprint/primary.json)" }, "secondary": { "...": "include(characteristic.json)" diff --git a/example/material/fingerprint/primary.json b/example/material/fingerprint/primary.json new file mode 100644 index 000000000..2b9b1692b --- /dev/null +++ b/example/material/fingerprint/primary.json @@ -0,0 +1,17 @@ +{ + "stoichiometric": { + "...": "include(primary/stoichiometric.json)" + }, + "structural": { + "...": "include(primary/structural.json)" + }, + "electronic": { + "...": "include(primary/electronic.json)" + }, + "chemical": { + "...": "include(primary/chemical.json)" + }, + "elemental": { + "...": "include(../elemental/elements.json)" + } +} diff --git a/example/material/primary/chemical.json b/example/material/fingerprint/primary/chemical.json similarity index 61% rename from example/material/primary/chemical.json rename to example/material/fingerprint/primary/chemical.json index 3b6624485..e4f6b3b8c 100644 --- a/example/material/primary/chemical.json +++ b/example/material/fingerprint/primary/chemical.json @@ -1,13 +1,12 @@ { - "coordinationNumber":[ + "coordinationNumber": [ [ 0 ] ], - "localEnvironment":[ + "localEnvironment": [ [ 5 ] - ] } diff --git a/example/material/primary/electronic.json b/example/material/fingerprint/primary/electronic.json similarity index 69% rename from example/material/primary/electronic.json rename to example/material/fingerprint/primary/electronic.json index 85b38bfb1..48daf575d 100644 --- a/example/material/primary/electronic.json +++ b/example/material/fingerprint/primary/electronic.json @@ -1,10 +1,10 @@ { - "elementSpinStates":[ + "elementSpinStates": [ [ 0 ] ], - "valenceOrbitalOccupancy":[ + "valenceOrbitalOccupancy": [ [ 0.5, 0.5, diff --git a/example/material/fingerprint/primary/stoichiometric.json b/example/material/fingerprint/primary/stoichiometric.json new file mode 100644 index 000000000..e31636eb8 --- /dev/null +++ b/example/material/fingerprint/primary/stoichiometric.json @@ -0,0 +1,7 @@ +{ + "pNorm": { + "p0": 1.0, + "p2": 1.0, + "p5": 1.0 + } +} diff --git a/example/material/primary/structural.json b/example/material/fingerprint/primary/structural.json similarity index 66% rename from example/material/primary/structural.json rename to example/material/fingerprint/primary/structural.json index a039a1085..f69884842 100644 --- a/example/material/primary/structural.json +++ b/example/material/fingerprint/primary/structural.json @@ -1,7 +1,7 @@ { - "latticeType": "CUB", + "type": "CUB", "representation": "primitive", "equilibrium": "Yes", "materialType": "crystal", - "volPerAtom": 0.15 + "averageAtomVolume": 0.15 } diff --git a/example/material/primary/primary.json b/example/material/primary/primary.json deleted file mode 100644 index 66185c247..000000000 --- a/example/material/primary/primary.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "stoichiometric":{ - "...": "include(stoichiometric.json)" - }, - "structural": { - "...": "include(structural.json)" - }, - "electronic": { - "...": "include(electronic.json)" - }, - "chemical": { - "...": "include(chemical.json)" - } -} diff --git a/example/material/primary/stoichiometric.json b/example/material/primary/stoichiometric.json deleted file mode 100644 index 6485c191d..000000000 --- a/example/material/primary/stoichiometric.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "pnorm": { - "p0": 1.0, - "p2": 1.0, - "p5": 1.0 - } -} diff --git a/example/material/structure/lattice.json b/example/material/structure/lattice.json index 559ce5851..df52f2b8a 100644 --- a/example/material/structure/lattice.json +++ b/example/material/structure/lattice.json @@ -1,5 +1,5 @@ { - "latticeType": "CUB", + "type": "CUB", "name": "lattice", "a": 5.00, "b": 5.00, diff --git a/example/material/structure/lattice_type.json b/example/material/structure/lattice_type.json index 1b0e139af..36b54d288 100644 --- a/example/material/structure/lattice_type.json +++ b/example/material/structure/lattice_type.json @@ -1,3 +1,3 @@ { - "latticeType": "CUB" + "type": "CUB" } diff --git a/schema/material/elements/_element.json b/schema/material/elemental/_element.json similarity index 79% rename from schema/material/elements/_element.json rename to schema/material/elemental/_element.json index b7a1d2207..cb07e790d 100644 --- a/schema/material/elements/_element.json +++ b/schema/material/elemental/_element.json @@ -7,78 +7,86 @@ "type": "string" }, "atomicNumber": { - "type": "number" + "type": "string" }, "atomicWeight": { "description": "atomic mass in a.u", "type": "number" }, - "density": { - "description": "density of elemental crystal. Units: g/cm3", - "type": "number" - }, - "meltingPoint": { - "description": "melting point of elemental crystal. Units: K", - "type": "number" + "electronicConfiguration": { + "type": "string" }, - "boilingPoint": { - "description": "boiling point of elemental crystal. Units: K", - "type": "number" + "oxidationStates": { + "description": "List of oxidation states", + "type": "string" }, "atomicRadius": { "description": "atomic radius. Units: pm", - "type": "number" + "type": "string" }, "covalentRadius": { "description": "calculated atomic radius in covalently bonded crystal environments. Units: pm", - "type": "number" + "type": "string" }, "ionicRadius": { "description": "measured ionic radius. Units: pm", - "type": "number" + "type": "string" + }, + "paulingNegativity": { + "description": "Pauling's electronegativity", + "type": "string" + }, + "firstIonizationPotential": { + "description": "Ionization energy from 0 to +1 oxidation state. Units: kJ/mol", + "type": "string" + }, + "latticeStructure": { + "description": "bravais lattice type of elemental crystal", + "type": "string" + }, + "latticeConstant": { + "description": "lattice constant of elemental crystal", + "type": "string" + }, + "density": { + "description": "density of elemental crystal. Units: g/cm3", + "type": "string" + }, + "meltingPoint": { + "description": "melting point of elemental crystal. Units: K", + "type": "string" + }, + "boilingPoint": { + "description": "boiling point of elemental crystal. Units: K", + "type": "string" }, "atomicVolume": { "description": "normalized volume per atom in elemental crystal. Units: cm**3/mol", - "type": "number" + "type": "string" }, "specificHeat": { "description": "specific heat at constant volume (Cv). Units: J/g/mol", - "type": "number" + "type": "string" }, "fusionHeat": { "description": "Heat of Fusion. Units: kJ/mol", - "type": "number" + "type": "string" }, "evaporationHeat": { "description": "Heat of Evaporation or Sublimation. Units: kJ/mol", - "type": "number" + "type": "string" }, "thermalConductivity": { "description": "Thermal conductivity. Units: W/m/K at 25degC", - "type": "number" - }, - "paulingNegativity": { - "description": "Pauling's electronegativity", - "type": "number" - }, - "firstIonizationPotential": { - "description": "Ionization energy from 0 to +1 oxidation state. Units: kJ/mol", - "type": "number" - }, - "oxidationStates": { - "description": "List of oxidation states", - "type": "string" - }, - "electronicConfiguration": { - "type": "string" - }, - "latticeStructure": { - "description": "bravais lattice type of elemental crystal", "type": "string" - }, - "latticeConstant": { - "description": "lattice constant of elemental crystal", - "type": "number" } - } + }, + "required": [ + "symbol", + "atomicNumber", + "atomicWeight", + "electronicConfiguration", + "oxidationStates", + "atomicRadius" + ] } diff --git a/schema/material/elemental/elements.json b/schema/material/elemental/elements.json new file mode 100644 index 000000000..063a67358 --- /dev/null +++ b/schema/material/elemental/elements.json @@ -0,0 +1,14 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "elemental properties collection schema", + "properties": { + "elements": { + "description": "elemental properties of all unique elements in the material", + "type": "array", + "items": { + "description": "elemental properties of individual element ", + "ref": "file:_element.json" + } + } + } +} diff --git a/schema/material/elements/elements.json b/schema/material/elements/elements.json deleted file mode 100644 index bcb170e44..000000000 --- a/schema/material/elements/elements.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "elemental properties collection schema", - "properties": { - "element": { - "description": "collection of properties for each element", - "$ref": "file:_element.json" - } - } -} diff --git a/schema/material/fingerprint.json b/schema/material/fingerprint.json index f5d31564c..6a11cc933 100644 --- a/schema/material/fingerprint.json +++ b/schema/material/fingerprint.json @@ -5,7 +5,7 @@ "properties": { "primary": { "description": "descriptors related to structure, stoichiometry and physical reference data of materials. Calculated on-the-fly ", - "$ref": "file:primary/primary.json" + "$ref": "file:fingerprint/primary.json" }, "secondary": { "description": "descriptors related to characteristics from simulations and/or experiments", diff --git a/schema/material/primary/primary.json b/schema/material/fingerprint/primary.json similarity index 64% rename from schema/material/primary/primary.json rename to schema/material/fingerprint/primary.json index eefc59f16..e23d729a6 100644 --- a/schema/material/primary/primary.json +++ b/schema/material/fingerprint/primary.json @@ -5,30 +5,30 @@ "properties": { "stoichiometric": { "description": "composition descriptors", - "$ref": "file:stoichiometric.json" + "$ref": "file:primary/stoichiometric.json" }, "structural": { "description": "structural descriptors", - "$ref": "file:structural.json" - }, - "physical": { - "description": "physical descriptors", - "$ref": "file:physical.json" + "$ref": "file:primary/structural.json" }, "electronic": { "description": "electronic descriptors", - "$ref": "file:electronic.json" + "$ref": "file:primary/electronic.json" }, "chemical": { "description": "chemical descriptors", - "$ref": "file:chemical.json" + "$ref": "file:primary/chemical.json" + }, + "elemental": { + "description": "elemental descriptors", + "$ref": "file:../elemental/elements.json" } }, "required": [ "stoichiometric", "structural", - "physical", "electronic", - "chemical" + "chemical", + "elemental" ] } diff --git a/schema/material/fingerprint/primary/chemical.json b/schema/material/fingerprint/primary/chemical.json new file mode 100644 index 000000000..c8854ae2c --- /dev/null +++ b/schema/material/fingerprint/primary/chemical.json @@ -0,0 +1,14 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "chemical descriptors schema", + "properties": { + "coordinationNumber": { + "description": "coordination numbers of all elements", + "$ref": "file:../../../primitive/1d_data_series.json" + }, + "localEnvironment": { + "description": "Represents the atom type each element is bonded to in the list [H, O, S, F, Cl, X]. X means an element is either non-bonded or bonded to any atom other than the atoms in the list", + "$ref": "file:../../../primitive/1d_data_series.json" + } + } +} diff --git a/schema/material/fingerprint/primary/electronic.json b/schema/material/fingerprint/primary/electronic.json new file mode 100644 index 000000000..7b024d82e --- /dev/null +++ b/schema/material/fingerprint/primary/electronic.json @@ -0,0 +1,18 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "electronic descriptors schema", + "properties": { + "elementSpinStates": { + "description": "Spin state of each element. Spin state depends on oxidation state and electronic configuration. ", + "$ref": "file:../../../primitive/1d_data_series.json" + }, + "valenceOrbitalOccupancy": { + "description": "valence orbital occupation - contribution from s, p, d, and f to valence - depends on electronic configuration. Ref:https://www.nature.com/articles/npjcompumats201628#s1", + "type": "array", + "items": { + "description": "array of s,p,d,f contributions for individual element ", + "ref": "file:../../../primitive/1d_data_series.json" + } + } + } +} diff --git a/schema/material/primary/stoichiometric.json b/schema/material/fingerprint/primary/stoichiometric.json similarity index 74% rename from schema/material/primary/stoichiometric.json rename to schema/material/fingerprint/primary/stoichiometric.json index b84e54633..17b9b7a44 100644 --- a/schema/material/primary/stoichiometric.json +++ b/schema/material/fingerprint/primary/stoichiometric.json @@ -2,9 +2,9 @@ "$schema": "http://json-schema.org/draft-04/schema#", "title": "stoichiometric descriptors schema", "properties": { - "pnorm": { + "pNorm": { "description": "array of values calculated using L-p norm upto p-dimensions", - "$ref": "file:../../primitive/1d_data_series.json" + "type": "object" } } } diff --git a/schema/material/fingerprint/primary/structural.json b/schema/material/fingerprint/primary/structural.json new file mode 100644 index 000000000..2f714522a --- /dev/null +++ b/schema/material/fingerprint/primary/structural.json @@ -0,0 +1,42 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "structural descriptors schema", + "allOf": [ + { + "$ref": "file:../../structure/lattice_type.json" + } + ], + "properties": { + "representation": { + "description": "structure representation.", + "type": "string", + "enum": [ + "primitive", + "conventional", + "supercell" + ] + }, + "equilibrium": { + "description": "Identifies a equilibrium structure.", + "type": "string", + "enum": [ + "Yes", + "No" + ] + }, + "materialType": { + "description": "Material type.", + "type": "string", + "enum": [ + "crystal", + "amorphous", + "polymer", + "molecule" + ] + }, + "averageAtomVolume": { + "description": "Averaged volume per atom. Units: 1/Ang**3", + "type": "number" + } + } +} diff --git a/schema/material/primary/chemical.json b/schema/material/primary/chemical.json deleted file mode 100644 index f0abfd855..000000000 --- a/schema/material/primary/chemical.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "chemical descriptors schema", - "properties": { - "electronAffinity": { - "description": "electron affinity values of all elements. EA depends on oxidation state. Units: eV", - "$ref": "file:../../primitive/1d_data_series.json" - }, - "ionizationPotential": { - "description": "ionization potentials of all elements. IP depends on oxidation state. Units: eV", - "$ref": "file:../../primitive/1d_data_series.json" - }, - "coordNumber": { - "description": "coordination numbers of all elements", - "$ref": "file:../../primitive/1d_data_series.json" - }, - "localEnv": { - "description": "Represents the atom type each element is bonded to. Allowed values min 0 and maximum is 5. Value corresponds to the index of elements in this list [H, O, S, F, Cl, X]. Example: 0 means an element is bonded to H and 5 means an element is either non-bonded or bonded to any atom other than the atoms in the list", - "$ref": "file:../../primitive/1d_data_series.json" - } - } -} diff --git a/schema/material/primary/electronic.json b/schema/material/primary/electronic.json deleted file mode 100644 index db284ff1c..000000000 --- a/schema/material/primary/electronic.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "electronic descriptors schema", - "properties": { - "spin": { - "description": "Spin state of each element. Allowed Values 0 or 1. 0 means low spin state and 1 means high spin state. Spin state depends on oxidation state and electronic configuration", - "$ref": "file:../../primitive/1d_data_series.json" - }, - "valOrbOcc":{ - "description":"valence orbital occupation - contribution from s, p, d, and f to valence - depends on electronic configuration. Ref:https://www.nature.com/articles/npjcompumats201628#s1", - "type": "array", - "items":{ - "description": "array of s,p,d,f contributions for individual element ", - "ref": "file:../../primitive/1d_data_series.json" - } - } - } -} diff --git a/schema/material/primary/structural.json b/schema/material/primary/structural.json deleted file mode 100644 index 6d77b4dcf..000000000 --- a/schema/material/primary/structural.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "structural descriptors schema", - "allOf": [ - { - "$ref": "file:../structure/lattice_type.json" - } - ], - "properties": { - "representation": { - "description": "structure representation. Allowed values 0,1 or 2 Eg: 0 means primitive, 1 means conventional and 2 means a supercell", - "type": "string" - }, - "equilibrium": { - "description": "Identifies a equilibrium structure. Values: 0 or 1 Eg: 0 means equilibrated and 1 means non-equilibrium structure", - "type": "string" - }, - "matType": { - "description": "Material type. Allowed values 0,1, 2 or 3 - crystal/amorphous/polymer/molecule/. Eg: 0 means crystalline and 3 means a molecule", - "type": "string" - }, - "vatom":{ - "description": "Averaged volume per atom. Units: 1/Ang**3", - "type": "number" - } - } -} From 2c978f695aed59dbfa9f796cc3ddff539d8a67d1 Mon Sep 17 00:00:00 2001 From: Phani Date: Wed, 10 May 2017 16:36:50 -0700 Subject: [PATCH 39/63] removed fingerprints from job and added to materials --- example/job.json | 6 +- example/job/_material.json | 5 +- example/job/_project.json | 3 +- example/material/elemental/elements.json | 2574 ----------------- .../fingerprint/primary/chemical.json | 8 +- .../fingerprint/primary/electronic.json | 18 +- .../fingerprint/primary/structural.json | 1 - .../material/structure/lattice_bravais.json | 2 +- example/material/structure/lattice_type.json | 3 - schema/job.json | 2 +- schema/job/_material.json | 4 - .../fingerprint/primary/_valence.json | 19 + .../fingerprint/primary/chemical.json | 19 +- .../fingerprint/primary/electronic.json | 15 +- .../fingerprint/primary/structural.json | 5 - .../material/structure/lattice_bravais.json | 28 +- schema/material/structure/lattice_type.json | 29 - 17 files changed, 88 insertions(+), 2653 deletions(-) delete mode 100644 example/material/structure/lattice_type.json create mode 100644 schema/material/fingerprint/primary/_valence.json delete mode 100644 schema/material/structure/lattice_type.json diff --git a/example/job.json b/example/job.json index 6870f32e1..cf3028f75 100644 --- a/example/job.json +++ b/example/job.json @@ -1,6 +1,9 @@ { "status": "pre-submission", "mode": "normal", + "_project": { + "...": "include(job/_project.json)" + }, "_materials": [ { "...": "include(job/_material.json)" @@ -23,8 +26,5 @@ "creator": { "_id": "HtxACY2wX4b2hS8Rv", "name": "demo" - }, - "_project": { - "...": "include(job/_project.json)" } } diff --git a/example/job/_material.json b/example/job/_material.json index dacc4978e..39787574b 100644 --- a/example/job/_material.json +++ b/example/job/_material.json @@ -1,8 +1,5 @@ { "exabyteId": "zQaQ8WLspMbGsiDwG", "_id": "8RnSpTd44PaYGgA7s", - "name": "Silicon FCC", - "fingerprint": { - "...": "include(../material/fingerprint.json)" - } + "name": "Silicon FCC" } diff --git a/example/job/_project.json b/example/job/_project.json index 31e6ffcbb..5361aacc7 100644 --- a/example/job/_project.json +++ b/example/job/_project.json @@ -1,8 +1,7 @@ { "name": "demo", "access": { - "type": 10, - "level": 10 + "...": "include(../security/access_legacy.json)" }, "owner": { "_id": "HtxACY2wX4b2hS8Rv", diff --git a/example/material/elemental/elements.json b/example/material/elemental/elements.json index e11d57991..fde880199 100644 --- a/example/material/elemental/elements.json +++ b/example/material/elemental/elements.json @@ -1,291 +1,5 @@ { "elements": [ - { - "symbol": "H", - "atomicNumber": 1, - "atomicWeight": 1.00794, - "density": "0.0708 (@ -253°C)", - "meltingPoint": 14.01, - "boilingPoint": 20.28, - "atomicRadius": 79, - "covalentRadius": 32, - "ionicRadius": "", - "atomicVolume": 14.1, - "specificHeat": "14.267 (H-H)", - "fusionHeat": "0.117 (H-H)", - "evaporationHeat": "0.904 (H-H)", - "thermalConductivity": 0.1815, - "paulingNegativity": 2.2, - "firstIonizationPotential": 1311.3, - "oxidationStates": "1, -1", - "electronicConfiguration": "1s¹", - "latticeStructure": "HEX", - "latticeConstant": 3.75 - }, - { - "symbol": "He", - "atomicNumber": 2, - "atomicWeight": 4.002602, - "density": "0.147 (@ -270°C)", - "meltingPoint": 0.95, - "boilingPoint": 4.216, - "atomicRadius": 0, - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": 31.8, - "specificHeat": 5.188, - "fusionHeat": "-", - "evaporationHeat": 0.08, - "thermalConductivity": 0.152, - "paulingNegativity": "-", - "firstIonizationPotential": 2361.3, - "oxidationStates": "-", - "electronicConfiguration": "1s²", - "latticeStructure": "HEX", - "latticeConstant": 3.57 - }, - { - "symbol": "Li", - "atomicNumber": 3, - "atomicWeight": 6.941, - "density": 0.534, - "meltingPoint": 553.69, - "boilingPoint": 1118.15, - "atomicRadius": 155, - "covalentRadius": 163, - "ionicRadius": "", - "atomicVolume": 13.1, - "specificHeat": 3.489, - "fusionHeat": 2.89, - "evaporationHeat": 148, - "thermalConductivity": 84.8, - "paulingNegativity": 0.98, - "firstIonizationPotential": 519.9, - "oxidationStates": 1, - "electronicConfiguration": "[He]2s¹", - "latticeStructure": "BCC", - "latticeConstant": 3.49 - }, - { - "symbol": "Be", - "atomicNumber": 4, - "atomicWeight": 9.01218, - "density": 1.848, - "meltingPoint": 1551, - "boilingPoint": 3243, - "atomicRadius": 112, - "covalentRadius": 90, - "ionicRadius": "", - "atomicVolume": 5, - "specificHeat": 1.824, - "fusionHeat": 12.21, - "evaporationHeat": 309, - "thermalConductivity": 201, - "paulingNegativity": 1.57, - "firstIonizationPotential": 898.8, - "oxidationStates": 2, - "electronicConfiguration": "[He]2s²", - "latticeStructure": "HEX", - "latticeConstant": 2.29 - }, - { - "symbol": "B", - "atomicNumber": 5, - "atomicWeight": 10.811, - "density": 2.34, - "meltingPoint": 2573, - "boilingPoint": 3931, - "atomicRadius": 98, - "covalentRadius": 82, - "ionicRadius": "", - "atomicVolume": 4.6, - "specificHeat": 1.025, - "fusionHeat": 23.6, - "evaporationHeat": 504.5, - "thermalConductivity": 27.4, - "paulingNegativity": 2.04, - "firstIonizationPotential": 800.2, - "oxidationStates": 3, - "electronicConfiguration": "[He]2s²2p¹", - "latticeStructure": "TET", - "latticeConstant": 8.73 - }, - { - "symbol": "C", - "atomicNumber": 6, - "atomicWeight": 12.011, - "density": "2.25 (graphite)", - "meltingPoint": 3820, - "boilingPoint": 5100, - "atomicRadius": 91, - "covalentRadius": 77, - "ionicRadius": "", - "atomicVolume": 5.3, - "specificHeat": 0.711, - "fusionHeat": "-", - "evaporationHeat": "-", - "thermalConductivity": 1.59, - "paulingNegativity": 2.55, - "firstIonizationPotential": 1085.7, - "oxidationStates": "4, 2, -4", - "electronicConfiguration": "[He]2s²2p²", - "latticeStructure": "DIA", - "latticeConstant": 3.57 - }, - { - "symbol": "N", - "atomicNumber": 7, - "atomicWeight": 14.00674, - "density": "0.808 (@ -195.8°C)", - "meltingPoint": 63.29, - "boilingPoint": 77.4, - "atomicRadius": 92, - "covalentRadius": 75, - "ionicRadius": "", - "atomicVolume": 17.3, - "specificHeat": "1.042 (N-N)", - "fusionHeat": "-", - "evaporationHeat": "-", - "thermalConductivity": 0.026, - "paulingNegativity": 3.04, - "firstIonizationPotential": 1401.5, - "oxidationStates": "5, 4, 3, 2, -3", - "electronicConfiguration": "[He]2s²2p³", - "latticeStructure": "HEX", - "latticeConstant": 4.039 - }, - { - "symbol": "O", - "atomicNumber": 8, - "atomicWeight": 15.9994, - "density": "1.149 (@ -183°C)", - "meltingPoint": 54.8, - "boilingPoint": 90.19, - "atomicRadius": "-", - "covalentRadius": 73, - "ionicRadius": "", - "atomicVolume": 14, - "specificHeat": "0.916 (O-O)", - "fusionHeat": "-", - "evaporationHeat": "-", - "thermalConductivity": 0.027, - "paulingNegativity": 3.44, - "firstIonizationPotential": 1313.1, - "oxidationStates": "-2, -1", - "electronicConfiguration": "[He]2s²2p", - "latticeStructure": "CUB", - "latticeConstant": 6.83 - }, - { - "symbol": "F", - "atomicNumber": 9, - "atomicWeight": 18.998403, - "density": "1.108 (@ -189°C)", - "meltingPoint": 53.53, - "boilingPoint": 85.01, - "atomicRadius": "-", - "covalentRadius": 72, - "ionicRadius": "", - "atomicVolume": 17.1, - "specificHeat": "0.824 (F-F)", - "fusionHeat": "0.51 (F-F)", - "evaporationHeat": "6.54 (F-F)", - "thermalConductivity": 0.028, - "paulingNegativity": 3.98, - "firstIonizationPotential": 1680, - "oxidationStates": -1, - "electronicConfiguration": "[He]2s²2p", - "latticeStructure": "MCL", - "latticeConstant": "-" - }, - { - "symbol": "Ne", - "atomicNumber": 10, - "atomicWeight": 20.1797, - "density": "1.204 (@ -246°C)", - "meltingPoint": 48, - "boilingPoint": 27.1, - "atomicRadius": "-", - "covalentRadius": 71, - "ionicRadius": "", - "atomicVolume": 16.8, - "specificHeat": 1.029, - "fusionHeat": "-", - "evaporationHeat": 1.74, - "thermalConductivity": "(0.0493)", - "paulingNegativity": 0, - "firstIonizationPotential": 2079.4, - "oxidationStates": "-", - "electronicConfiguration": "[He]2s²2p", - "latticeStructure": "FCC", - "latticeConstant": 4.43 - }, - { - "symbol": "Na", - "atomicNumber": 11, - "atomicWeight": 22.989768, - "density": 0.971, - "meltingPoint": 370.96, - "boilingPoint": 1156.1, - "atomicRadius": 190, - "covalentRadius": 154, - "ionicRadius": "", - "atomicVolume": 23.7, - "specificHeat": 1.222, - "fusionHeat": 2.64, - "evaporationHeat": 97.9, - "thermalConductivity": 142, - "paulingNegativity": 0.93, - "firstIonizationPotential": 495.6, - "oxidationStates": 1, - "electronicConfiguration": "[Ne]3s¹", - "latticeStructure": "BCC", - "latticeConstant": 4.23 - }, - { - "symbol": "Mg", - "atomicNumber": 12, - "atomicWeight": 24.305, - "density": 1.738, - "meltingPoint": 922, - "boilingPoint": 1363, - "atomicRadius": 160, - "covalentRadius": 136, - "ionicRadius": "", - "atomicVolume": 14, - "specificHeat": 1.025, - "fusionHeat": 9.2, - "evaporationHeat": 131.8, - "thermalConductivity": 156, - "paulingNegativity": 1.31, - "firstIonizationPotential": 737.3, - "oxidationStates": 2, - "electronicConfiguration": "[Ne]3s²", - "latticeStructure": "HEX", - "latticeConstant": 3.21 - }, - { - "symbol": "Al", - "atomicNumber": 13, - "atomicWeight": 26.981539, - "density": 2.6989, - "meltingPoint": 933.5, - "boilingPoint": 2740, - "atomicRadius": 143, - "covalentRadius": 118, - "ionicRadius": "", - "atomicVolume": 10, - "specificHeat": 0.9, - "fusionHeat": 10.75, - "evaporationHeat": 284.1, - "thermalConductivity": 237, - "paulingNegativity": 1.61, - "firstIonizationPotential": 577.2, - "oxidationStates": 3, - "electronicConfiguration": "[Ne]3s²3p¹", - "latticeStructure": "FCC", - "latticeConstant": 4.05 - }, { "symbol": "Si", "atomicNumber": 14, @@ -307,2294 +21,6 @@ "electronicConfiguration": "[Ne]3s²3p²", "latticeStructure": "DIA", "latticeConstant": 5.43 - }, - { - "symbol": "P", - "atomicNumber": 15, - "atomicWeight": 30.973762, - "density": "1.82 (white phosphorus)", - "meltingPoint": 317.3, - "boilingPoint": 553, - "atomicRadius": 128, - "covalentRadius": 106, - "ionicRadius": "", - "atomicVolume": 17, - "specificHeat": 0.757, - "fusionHeat": 2.51, - "evaporationHeat": 49.8, - "thermalConductivity": "(0.236)", - "paulingNegativity": 2.19, - "firstIonizationPotential": 1011.2, - "oxidationStates": "5, 3, -3", - "electronicConfiguration": "[Ne]3s²3p³", - "latticeStructure": "CUB", - "latticeConstant": 7.17 - }, - { - "symbol": "S", - "atomicNumber": 16, - "atomicWeight": 32.066, - "density": 2.07, - "meltingPoint": 386, - "boilingPoint": 717.824, - "atomicRadius": 127, - "covalentRadius": 102, - "ionicRadius": "", - "atomicVolume": 15.5, - "specificHeat": 0.732, - "fusionHeat": 1.23, - "evaporationHeat": 10.5, - "thermalConductivity": 0.27, - "paulingNegativity": 2.58, - "firstIonizationPotential": 999, - "oxidationStates": "6, 4, 2, -2", - "electronicConfiguration": "[Ne]3s²3p", - "latticeStructure": "ORC", - "latticeConstant": 10.47 - }, - { - "symbol": "Cl", - "atomicNumber": 17, - "atomicWeight": 35.4527, - "density": "1.56 (@ -33.6°C)", - "meltingPoint": 172.2, - "boilingPoint": 238.6, - "atomicRadius": "-", - "covalentRadius": 99, - "ionicRadius": "", - "atomicVolume": 18.7, - "specificHeat": "0.477 (Cl-Cl)", - "fusionHeat": "6.41 (Cl-Cl)", - "evaporationHeat": "20.41 (Cl-Cl)", - "thermalConductivity": 0.009, - "paulingNegativity": 3.16, - "firstIonizationPotential": 1254.9, - "oxidationStates": "7, 5, 3, 1, -1", - "electronicConfiguration": "[Ne]3s²3p", - "latticeStructure": "ORC", - "latticeConstant": 6.24 - }, - { - "symbol": "Ar", - "atomicNumber": 18, - "atomicWeight": 39.948, - "density": "1.40 (@ -186°C)", - "meltingPoint": 83.8, - "boilingPoint": 87.3, - "atomicRadius": "2-", - "covalentRadius": 98, - "ionicRadius": "", - "atomicVolume": 24.2, - "specificHeat": 0.138, - "fusionHeat": "-", - "evaporationHeat": 6.52, - "thermalConductivity": 0.0177, - "paulingNegativity": 0, - "firstIonizationPotential": 1519.6, - "oxidationStates": "-", - "electronicConfiguration": "[Ne]3s²3p", - "latticeStructure": "FCC", - "latticeConstant": 5.26 - }, - { - "symbol": "K", - "atomicNumber": 19, - "atomicWeight": 39.0983, - "density": 0.856, - "meltingPoint": 336.8, - "boilingPoint": 1047, - "atomicRadius": 235, - "covalentRadius": 203, - "ionicRadius": "", - "atomicVolume": 45.3, - "specificHeat": 0.753, - "fusionHeat": 102.5, - "evaporationHeat": 2.33, - "thermalConductivity": 79, - "paulingNegativity": 0.82, - "firstIonizationPotential": 418.5, - "oxidationStates": 1, - "electronicConfiguration": "[Ar]4s¹", - "latticeStructure": "BCC", - "latticeConstant": 5.23 - }, - { - "symbol": "Ca", - "atomicNumber": 20, - "atomicWeight": 40.078, - "density": 1.55, - "meltingPoint": 1112, - "boilingPoint": 1757, - "atomicRadius": 197, - "covalentRadius": 174, - "ionicRadius": "", - "atomicVolume": 29.9, - "specificHeat": 0.653, - "fusionHeat": 9.2, - "evaporationHeat": 153.6, - "thermalConductivity": "(201)", - "paulingNegativity": 1, - "firstIonizationPotential": 589.4, - "oxidationStates": 2, - "electronicConfiguration": "[Ar]4s²", - "latticeStructure": "FCC", - "latticeConstant": 5.58 - }, - { - "symbol": "Sc", - "atomicNumber": 21, - "atomicWeight": 44.95591, - "density": 2.99, - "meltingPoint": 1814, - "boilingPoint": 3104, - "atomicRadius": 162, - "covalentRadius": 144, - "ionicRadius": "", - "atomicVolume": 15, - "specificHeat": 0.556, - "fusionHeat": 15.8, - "evaporationHeat": 332.7, - "thermalConductivity": 15.8, - "paulingNegativity": 1.36, - "firstIonizationPotential": 630.8, - "oxidationStates": 3, - "electronicConfiguration": "[Ar]3d¹4s²", - "latticeStructure": "HEX", - "latticeConstant": 3.31 - }, - { - "symbol": "Ti", - "atomicNumber": 22, - "atomicWeight": 47.88, - "density": 4.54, - "meltingPoint": 1933, - "boilingPoint": 3560, - "atomicRadius": 147, - "covalentRadius": 132, - "ionicRadius": "", - "atomicVolume": 10.6, - "specificHeat": 0.523, - "fusionHeat": 18.8, - "evaporationHeat": 422.6, - "thermalConductivity": 21.9, - "paulingNegativity": 1.54, - "firstIonizationPotential": 657.8, - "oxidationStates": "4, 3", - "electronicConfiguration": "[Ar]3d²4s²", - "latticeStructure": "HEX", - "latticeConstant": 2.95 - }, - { - "symbol": "V", - "atomicNumber": 23, - "atomicWeight": 50.9415, - "density": 6.11, - "meltingPoint": 2160, - "boilingPoint": 3650, - "atomicRadius": 134, - "covalentRadius": 122, - "ionicRadius": "", - "atomicVolume": 8.35, - "specificHeat": 0.485, - "fusionHeat": 17.5, - "evaporationHeat": 460, - "thermalConductivity": 30.7, - "paulingNegativity": 1.63, - "firstIonizationPotential": 650.1, - "oxidationStates": "5, 4, 3, 2, 0", - "electronicConfiguration": "[Ar]3d³4s²", - "latticeStructure": "BCC", - "latticeConstant": 3.02 - }, - { - "symbol": "Cr", - "atomicNumber": 24, - "atomicWeight": 51.9961, - "density": 7.18, - "meltingPoint": 2130, - "boilingPoint": 2945, - "atomicRadius": 130, - "covalentRadius": 118, - "ionicRadius": "", - "atomicVolume": 7.23, - "specificHeat": 0.488, - "fusionHeat": 21, - "evaporationHeat": 342, - "thermalConductivity": 93.9, - "paulingNegativity": 1.66, - "firstIonizationPotential": 652.4, - "oxidationStates": "6, 3, 2, 0", - "electronicConfiguration": "[Ar]3d4s¹", - "latticeStructure": "BCC", - "latticeConstant": 2.88 - }, - { - "symbol": "Mn", - "atomicNumber": 25, - "atomicWeight": 54.93805, - "density": 7.21, - "meltingPoint": 1517, - "boilingPoint": 2235, - "atomicRadius": 135, - "covalentRadius": 117, - "ionicRadius": "", - "atomicVolume": 7.39, - "specificHeat": 0.477, - "fusionHeat": "(13.4)", - "evaporationHeat": 221, - "thermalConductivity": "(7.8)", - "paulingNegativity": 1.55, - "firstIonizationPotential": 716.8, - "oxidationStates": "7, 6, 4, 3, 2, 0, -1", - "electronicConfiguration": "[Ar]3d4s²", - "latticeStructure": "CUB", - "latticeConstant": 8.89 - }, - { - "symbol": "Fe", - "atomicNumber": 26, - "atomicWeight": 55.847, - "density": 7.874, - "meltingPoint": 1808, - "boilingPoint": 3023, - "atomicRadius": 126, - "covalentRadius": 117, - "ionicRadius": "", - "atomicVolume": 7.1, - "specificHeat": 0.443, - "fusionHeat": 13.8, - "evaporationHeat": "~340", - "thermalConductivity": 80.4, - "paulingNegativity": 1.83, - "firstIonizationPotential": 759.1, - "oxidationStates": "6, 3, 2, 0, -2", - "electronicConfiguration": "[Ar]3d4s²", - "latticeStructure": "BCC", - "latticeConstant": 2.87 - }, - { - "symbol": "Co", - "atomicNumber": 27, - "atomicWeight": 58.9332, - "density": 8.9, - "meltingPoint": 1768, - "boilingPoint": 3143, - "atomicRadius": 125, - "covalentRadius": 116, - "ionicRadius": "", - "atomicVolume": 6.7, - "specificHeat": 0.456, - "fusionHeat": 15.48, - "evaporationHeat": 389.1, - "thermalConductivity": 100, - "paulingNegativity": 1.88, - "firstIonizationPotential": 758.1, - "oxidationStates": "3, 2, 0, -1", - "electronicConfiguration": "[Ar]3d4s²", - "latticeStructure": "HEX", - "latticeConstant": 2.51 - }, - { - "symbol": "Ni", - "atomicNumber": 28, - "atomicWeight": 58.6934, - "density": 8.902, - "meltingPoint": 1726, - "boilingPoint": 3005, - "atomicRadius": 124, - "covalentRadius": 115, - "ionicRadius": "", - "atomicVolume": 6.6, - "specificHeat": 0.443, - "fusionHeat": 17.61, - "evaporationHeat": 378.6, - "thermalConductivity": 90.9, - "paulingNegativity": 1.91, - "firstIonizationPotential": 736.2, - "oxidationStates": "3, 2, 0", - "electronicConfiguration": "[Ar]3d4s²", - "latticeStructure": "FCC", - "latticeConstant": 3.52 - }, - { - "symbol": "Cu", - "atomicNumber": 29, - "atomicWeight": 63.546, - "density": 8.96, - "meltingPoint": 1356.6, - "boilingPoint": 2840, - "atomicRadius": 128, - "covalentRadius": 117, - "ionicRadius": "", - "atomicVolume": 7.1, - "specificHeat": 0.385, - "fusionHeat": 13.01, - "evaporationHeat": 304.6, - "thermalConductivity": 401, - "paulingNegativity": 1.9, - "firstIonizationPotential": 745, - "oxidationStates": "2, 1", - "electronicConfiguration": "[Ar]3d¹4s¹", - "latticeStructure": "FCC", - "latticeConstant": 3.61 - }, - { - "symbol": "Zn", - "atomicNumber": 30, - "atomicWeight": 65.39, - "density": 7.133, - "meltingPoint": 692.73, - "boilingPoint": 1180, - "atomicRadius": 138, - "covalentRadius": 125, - "ionicRadius": "", - "atomicVolume": 9.2, - "specificHeat": 0.388, - "fusionHeat": 7.28, - "evaporationHeat": 114.8, - "thermalConductivity": 116, - "paulingNegativity": 1.65, - "firstIonizationPotential": 905.8, - "oxidationStates": 2, - "electronicConfiguration": "[Ar]3d¹4s²", - "latticeStructure": "HEX", - "latticeConstant": 2.66 - }, - { - "symbol": "Ga", - "atomicNumber": 31, - "atomicWeight": 69.723, - "density": 5.91, - "meltingPoint": 302.93, - "boilingPoint": 2676, - "atomicRadius": 141, - "covalentRadius": 126, - "ionicRadius": "", - "atomicVolume": 11.8, - "specificHeat": 0.372, - "fusionHeat": 5.59, - "evaporationHeat": 270.3, - "thermalConductivity": 28.1, - "paulingNegativity": 1.81, - "firstIonizationPotential": 578.7, - "oxidationStates": 3, - "electronicConfiguration": "[Ar]3d¹4s²4p¹", - "latticeStructure": "ORC", - "latticeConstant": 4.51 - }, - { - "symbol": "Ge", - "atomicNumber": 32, - "atomicWeight": 72.61, - "density": 5.323, - "meltingPoint": 1210.6, - "boilingPoint": 3103, - "atomicRadius": 137, - "covalentRadius": 122, - "ionicRadius": "", - "atomicVolume": 13.6, - "specificHeat": 0.322, - "fusionHeat": 36.8, - "evaporationHeat": 328, - "thermalConductivity": 60.2, - "paulingNegativity": 2.01, - "firstIonizationPotential": 760, - "oxidationStates": 4, - "electronicConfiguration": "[Ar]3d¹4s²4p²", - "latticeStructure": "DIA", - "latticeConstant": 5.66 - }, - { - "symbol": "As", - "atomicNumber": 33, - "atomicWeight": 74.92159, - "density": "5.73 (grey arsenic)", - "meltingPoint": 1090, - "boilingPoint": 876, - "atomicRadius": 139, - "covalentRadius": 120, - "ionicRadius": "", - "atomicVolume": 13.1, - "specificHeat": 0.328, - "fusionHeat": "-", - "evaporationHeat": 32.4, - "thermalConductivity": "(50.2)", - "paulingNegativity": 2.18, - "firstIonizationPotential": 946.2, - "oxidationStates": "5, 3, -2", - "electronicConfiguration": "[Ar]3d¹4s²4p³", - "latticeStructure": "RHL", - "latticeConstant": 4.13 - }, - { - "symbol": "Se", - "atomicNumber": 34, - "atomicWeight": 78.96, - "density": 4.79, - "meltingPoint": 490, - "boilingPoint": 958.1, - "atomicRadius": 140, - "covalentRadius": 116, - "ionicRadius": "", - "atomicVolume": 16.5, - "specificHeat": "0.321 (Se-Se)", - "fusionHeat": 5.23, - "evaporationHeat": 59.7, - "thermalConductivity": 0.52, - "paulingNegativity": 2.55, - "firstIonizationPotential": 940.4, - "oxidationStates": "6, 4, -2", - "electronicConfiguration": "[Ar]3d¹4s²4p", - "latticeStructure": "HEX", - "latticeConstant": 4.36 - }, - { - "symbol": "Br", - "atomicNumber": 35, - "atomicWeight": 79.904, - "density": 3.12, - "meltingPoint": 265.9, - "boilingPoint": 331.9, - "atomicRadius": "-", - "covalentRadius": 114, - "ionicRadius": "", - "atomicVolume": 23.5, - "specificHeat": "0.473 (Br-Br)", - "fusionHeat": "10.57 (Br-Br)", - "evaporationHeat": "29.56 (Br-Br)", - "thermalConductivity": 0.005, - "paulingNegativity": 2.96, - "firstIonizationPotential": 1142, - "oxidationStates": "7, 5, 3, 1, -1", - "electronicConfiguration": "[Ar]3d¹4s²4p", - "latticeStructure": "ORC", - "latticeConstant": 6.67 - }, - { - "symbol": "Kr", - "atomicNumber": 36, - "atomicWeight": 83.8, - "density": "2.155 (@ -153°C)", - "meltingPoint": 116.6, - "boilingPoint": 120.85, - "atomicRadius": "-", - "covalentRadius": 112, - "ionicRadius": "", - "atomicVolume": 32.2, - "specificHeat": 0.247, - "fusionHeat": "-", - "evaporationHeat": 9.05, - "thermalConductivity": 0.0095, - "paulingNegativity": 0, - "firstIonizationPotential": 1350, - "oxidationStates": 2, - "electronicConfiguration": "[Ar]3d¹4s²4p", - "latticeStructure": "FCC", - "latticeConstant": 5.72 - }, - { - "symbol": "Rb", - "atomicNumber": 37, - "atomicWeight": 85.4678, - "density": 1.532, - "meltingPoint": 312.2, - "boilingPoint": 961, - "atomicRadius": 248, - "covalentRadius": 216, - "ionicRadius": "", - "atomicVolume": 55.9, - "specificHeat": 0.36, - "fusionHeat": 2.2, - "evaporationHeat": 75.8, - "thermalConductivity": 58.2, - "paulingNegativity": 0.82, - "firstIonizationPotential": 402.8, - "oxidationStates": 1, - "electronicConfiguration": "[Kr]5s¹", - "latticeStructure": "BCC", - "latticeConstant": 5.59 - }, - { - "symbol": "Sr", - "atomicNumber": 38, - "atomicWeight": 87.62, - "density": 2.54, - "meltingPoint": 1042, - "boilingPoint": 1657, - "atomicRadius": 215, - "covalentRadius": 191, - "ionicRadius": "", - "atomicVolume": 33.7, - "specificHeat": 0.301, - "fusionHeat": 9.2, - "evaporationHeat": 144, - "thermalConductivity": "(35.4)", - "paulingNegativity": 0.95, - "firstIonizationPotential": 549, - "oxidationStates": 2, - "electronicConfiguration": "[Kr]5s²", - "latticeStructure": "FCC", - "latticeConstant": 6.08 - }, - { - "symbol": "Y", - "atomicNumber": 39, - "atomicWeight": 88.90585, - "density": 4.47, - "meltingPoint": 1795, - "boilingPoint": 3611, - "atomicRadius": 178, - "covalentRadius": 162, - "ionicRadius": "", - "atomicVolume": 19.8, - "specificHeat": 0.284, - "fusionHeat": 11.5, - "evaporationHeat": 367, - "thermalConductivity": "(17.2)", - "paulingNegativity": 1.22, - "firstIonizationPotential": 615.4, - "oxidationStates": 3, - "electronicConfiguration": "[Kr]4d¹5s²", - "latticeStructure": "HEX", - "latticeConstant": 3.65 - }, - { - "symbol": "Zr", - "atomicNumber": 40, - "atomicWeight": 91.224, - "density": 6.506, - "meltingPoint": 2125, - "boilingPoint": 4650, - "atomicRadius": 160, - "covalentRadius": 145, - "ionicRadius": "", - "atomicVolume": 14.1, - "specificHeat": 0.281, - "fusionHeat": 19.2, - "evaporationHeat": 567, - "thermalConductivity": 22.7, - "paulingNegativity": 1.33, - "firstIonizationPotential": 659.7, - "oxidationStates": 4, - "electronicConfiguration": "[Kr]4d²5s²", - "latticeStructure": "HEX", - "latticeConstant": 3.23 - }, - { - "symbol": "Nb", - "atomicNumber": 41, - "atomicWeight": 92.90638, - "density": 8.57, - "meltingPoint": 2741, - "boilingPoint": 5015, - "atomicRadius": 146, - "covalentRadius": 134, - "ionicRadius": "", - "atomicVolume": 10.8, - "specificHeat": 0.268, - "fusionHeat": 26.8, - "evaporationHeat": 680, - "thermalConductivity": 53.7, - "paulingNegativity": 1.6, - "firstIonizationPotential": 663.6, - "oxidationStates": "5, 3", - "electronicConfiguration": "[Kr]4d5s¹", - "latticeStructure": "BCC", - "latticeConstant": 3.3 - }, - { - "symbol": "Mo", - "atomicNumber": 42, - "atomicWeight": 95.94, - "density": 10.22, - "meltingPoint": 2890, - "boilingPoint": 4885, - "atomicRadius": 139, - "covalentRadius": 130, - "ionicRadius": "", - "atomicVolume": 9.4, - "specificHeat": 0.251, - "fusionHeat": 28, - "evaporationHeat": "~590", - "thermalConductivity": "(138)", - "paulingNegativity": 2.16, - "firstIonizationPotential": 684.8, - "oxidationStates": "6, 5, 4, 3, 2, 0", - "electronicConfiguration": "[Kr]4d5s¹", - "latticeStructure": "BCC", - "latticeConstant": 3.15 - }, - { - "symbol": "Tc", - "atomicNumber": 43, - "atomicWeight": 97.9072, - "density": 11.5, - "meltingPoint": 2445, - "boilingPoint": 5150, - "atomicRadius": 136, - "covalentRadius": 127, - "ionicRadius": "", - "atomicVolume": 8.5, - "specificHeat": 0.243, - "fusionHeat": 23.8, - "evaporationHeat": 585, - "thermalConductivity": 50.6, - "paulingNegativity": 1.9, - "firstIonizationPotential": 702.2, - "oxidationStates": 7, - "electronicConfiguration": "[Kr]4d5s¹", - "latticeStructure": "HEX", - "latticeConstant": 2.74 - }, - { - "symbol": "Ru", - "atomicNumber": 44, - "atomicWeight": 101.07, - "density": 12.41, - "meltingPoint": 2583, - "boilingPoint": 4173, - "atomicRadius": 134, - "covalentRadius": 125, - "ionicRadius": "", - "atomicVolume": 8.3, - "specificHeat": 0.238, - "fusionHeat": "(25.5)", - "evaporationHeat": "-", - "thermalConductivity": 117, - "paulingNegativity": 2.2, - "firstIonizationPotential": 710.3, - "oxidationStates": "8, 6, 4, 3, 2, 0, -2", - "electronicConfiguration": "[Kr]4d5s¹", - "latticeStructure": "HEX", - "latticeConstant": 2.7 - }, - { - "symbol": "Rh", - "atomicNumber": 45, - "atomicWeight": 102.9055, - "density": 12.41, - "meltingPoint": 2239, - "boilingPoint": 4000, - "atomicRadius": 134, - "covalentRadius": 125, - "ionicRadius": "", - "atomicVolume": 8.3, - "specificHeat": 0.244, - "fusionHeat": 21.8, - "evaporationHeat": 494, - "thermalConductivity": 150, - "paulingNegativity": 2.28, - "firstIonizationPotential": 719.5, - "oxidationStates": "5, 4, 3, 2, 1, 0", - "electronicConfiguration": "[Kr]4d5s¹", - "latticeStructure": "FCC", - "latticeConstant": 3.8 - }, - { - "symbol": "Pd", - "atomicNumber": 46, - "atomicWeight": 106.42, - "density": 12.02, - "meltingPoint": 1825, - "boilingPoint": 3413, - "atomicRadius": 137, - "covalentRadius": 128, - "ionicRadius": "", - "atomicVolume": 8.9, - "specificHeat": 0.244, - "fusionHeat": 17.24, - "evaporationHeat": 372.4, - "thermalConductivity": 71.8, - "paulingNegativity": 2.2, - "firstIonizationPotential": 803.5, - "oxidationStates": "4, 2, 0", - "electronicConfiguration": "[Kr]4d5s", - "latticeStructure": "FCC", - "latticeConstant": 3.89 - }, - { - "symbol": "Ag", - "atomicNumber": 47, - "atomicWeight": 107.8682, - "density": 10.5, - "meltingPoint": 1235.1, - "boilingPoint": 2485, - "atomicRadius": 144, - "covalentRadius": 134, - "ionicRadius": "", - "atomicVolume": 10.3, - "specificHeat": 0.237, - "fusionHeat": 11.95, - "evaporationHeat": 254.1, - "thermalConductivity": 429, - "paulingNegativity": 1.93, - "firstIonizationPotential": 730.5, - "oxidationStates": "2, 1", - "electronicConfiguration": "[Kr]4d5s¹", - "latticeStructure": "FCC", - "latticeConstant": 4.09 - }, - { - "symbol": "Cd", - "atomicNumber": 48, - "atomicWeight": 112.411, - "density": 8.65, - "meltingPoint": 594.1, - "boilingPoint": 1038, - "atomicRadius": 154, - "covalentRadius": 148, - "ionicRadius": "", - "atomicVolume": 13.1, - "specificHeat": 0.232, - "fusionHeat": 6.11, - "evaporationHeat": 59.1, - "thermalConductivity": 96.9, - "paulingNegativity": 1.69, - "firstIonizationPotential": 867.2, - "oxidationStates": 2, - "electronicConfiguration": "[Kr]4d5s²", - "latticeStructure": "HEX", - "latticeConstant": 2.98 - }, - { - "symbol": "In", - "atomicNumber": 49, - "atomicWeight": 114.818, - "density": 7.31, - "meltingPoint": 429.32, - "boilingPoint": 2353, - "atomicRadius": 166, - "covalentRadius": 144, - "ionicRadius": "", - "atomicVolume": 15.7, - "specificHeat": 0.234, - "fusionHeat": 3.24, - "evaporationHeat": 225.1, - "thermalConductivity": 81.8, - "paulingNegativity": 1.78, - "firstIonizationPotential": 558, - "oxidationStates": 3, - "electronicConfiguration": "[Kr]4d5s²5p¹", - "latticeStructure": "TET", - "latticeConstant": 4.59 - }, - { - "symbol": "Sn", - "atomicNumber": 50, - "atomicWeight": 118.71, - "density": 7.31, - "meltingPoint": 505.1, - "boilingPoint": 2543, - "atomicRadius": 162, - "covalentRadius": 141, - "ionicRadius": "", - "atomicVolume": 16.3, - "specificHeat": 0.222, - "fusionHeat": 7.07, - "evaporationHeat": 296, - "thermalConductivity": 66.8, - "paulingNegativity": 1.96, - "firstIonizationPotential": 708.2, - "oxidationStates": "4, 2", - "electronicConfiguration": "[Kr]4d5s²5p²", - "latticeStructure": "TET", - "latticeConstant": 5.82 - }, - { - "symbol": "Sb", - "atomicNumber": 51, - "atomicWeight": 121.76, - "density": 6.691, - "meltingPoint": 903.9, - "boilingPoint": 1908, - "atomicRadius": 159, - "covalentRadius": 140, - "ionicRadius": "", - "atomicVolume": 18.4, - "specificHeat": 0.205, - "fusionHeat": 20.08, - "evaporationHeat": 195.2, - "thermalConductivity": 24.43, - "paulingNegativity": 2.05, - "firstIonizationPotential": 833.3, - "oxidationStates": "5, 3, -2", - "electronicConfiguration": "[Kr]4d5s²5p³", - "latticeStructure": "RHL", - "latticeConstant": 4.51 - }, - { - "symbol": "Te", - "atomicNumber": 52, - "atomicWeight": 127.6, - "density": 6.24, - "meltingPoint": 722.7, - "boilingPoint": 1263, - "atomicRadius": 160, - "covalentRadius": 136, - "ionicRadius": "", - "atomicVolume": 20.5, - "specificHeat": 0.201, - "fusionHeat": 17.91, - "evaporationHeat": 49.8, - "thermalConductivity": 14.3, - "paulingNegativity": 2.1, - "firstIonizationPotential": 869, - "oxidationStates": "6, 4, 2", - "electronicConfiguration": "[Kr]4d5s²5p", - "latticeStructure": "HEX", - "latticeConstant": 4.45 - }, - { - "symbol": "I", - "atomicNumber": 53, - "atomicWeight": 126.90447, - "density": 4.93, - "meltingPoint": 386.7, - "boilingPoint": 457.5, - "atomicRadius": "-", - "covalentRadius": 133, - "ionicRadius": "", - "atomicVolume": 25.7, - "specificHeat": "0.427 (I-I)", - "fusionHeat": "15.52 (I-I)", - "evaporationHeat": "41.95 (I-I)", - "thermalConductivity": "(0.45)", - "paulingNegativity": 2.66, - "firstIonizationPotential": 1008.3, - "oxidationStates": "7, 5, 1, -1", - "electronicConfiguration": "[Kr]4d5s²5p", - "latticeStructure": "ORC", - "latticeConstant": 7.72 - }, - { - "symbol": "Xe", - "atomicNumber": 54, - "atomicWeight": 131.29, - "density": "3.52 (@ -109°C)", - "meltingPoint": 161.3, - "boilingPoint": 166.1, - "atomicRadius": "-", - "covalentRadius": 131, - "ionicRadius": "", - "atomicVolume": 42.9, - "specificHeat": 0.158, - "fusionHeat": "-", - "evaporationHeat": 12.65, - "thermalConductivity": 0.0057, - "paulingNegativity": 0, - "firstIonizationPotential": 1170, - "oxidationStates": 7, - "electronicConfiguration": "[Kr]4d5s²5p", - "latticeStructure": "FCC", - "latticeConstant": 6.2 - }, - { - "symbol": "Cs", - "atomicNumber": 55, - "atomicWeight": 132.90543, - "density": 1.873, - "meltingPoint": 301.6, - "boilingPoint": 951.6, - "atomicRadius": 267, - "covalentRadius": 235, - "ionicRadius": "", - "atomicVolume": 70, - "specificHeat": 0.241, - "fusionHeat": 2.09, - "evaporationHeat": 68.3, - "thermalConductivity": 35.9, - "paulingNegativity": 0.79, - "firstIonizationPotential": 375.5, - "oxidationStates": 1, - "electronicConfiguration": "[Xe]6s¹", - "latticeStructure": "BCC", - "latticeConstant": 6.05 - }, - { - "symbol": "Ba", - "atomicNumber": 56, - "atomicWeight": 137.327, - "density": 3.5, - "meltingPoint": 1002, - "boilingPoint": 1910, - "atomicRadius": 222, - "covalentRadius": 198, - "ionicRadius": "", - "atomicVolume": 39, - "specificHeat": 0.192, - "fusionHeat": 7.66, - "evaporationHeat": 142, - "thermalConductivity": "(18.4)", - "paulingNegativity": 0.89, - "firstIonizationPotential": 502.5, - "oxidationStates": 2, - "electronicConfiguration": "[Xe]6s²", - "latticeStructure": "BCC", - "latticeConstant": 5.02 - }, - { - "symbol": "La", - "atomicNumber": 57, - "atomicWeight": 138.9055, - "density": 6.15, - "meltingPoint": 1194, - "boilingPoint": 3730, - "atomicRadius": 187, - "covalentRadius": 169, - "ionicRadius": "", - "atomicVolume": 22.5, - "specificHeat": 0.197, - "fusionHeat": 8.5, - "evaporationHeat": 402, - "thermalConductivity": 13.4, - "paulingNegativity": 1.1, - "firstIonizationPotential": 541.1, - "oxidationStates": 3, - "electronicConfiguration": "[Xe]6d¹6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.75 - }, - { - "symbol": "Ce", - "atomicNumber": 58, - "atomicWeight": 140.115, - "density": 6.757, - "meltingPoint": 1072, - "boilingPoint": 3699, - "atomicRadius": 181, - "covalentRadius": 165, - "ionicRadius": "", - "atomicVolume": 21, - "specificHeat": 0.205, - "fusionHeat": 5.2, - "evaporationHeat": 398, - "thermalConductivity": 11.3, - "paulingNegativity": 1.12, - "firstIonizationPotential": 540.1, - "oxidationStates": "4, 3", - "electronicConfiguration": "[Xe]4f¹5d¹6s²", - "latticeStructure": "FCC", - "latticeConstant": 5.16 - }, - { - "symbol": "Pr", - "atomicNumber": 59, - "atomicWeight": 140.90765, - "density": 6.773, - "meltingPoint": 1204, - "boilingPoint": 3785, - "atomicRadius": 182, - "covalentRadius": 165, - "ionicRadius": "", - "atomicVolume": 20.8, - "specificHeat": 0.192, - "fusionHeat": 11.3, - "evaporationHeat": 331, - "thermalConductivity": 12.5, - "paulingNegativity": 1.13, - "firstIonizationPotential": 526.6, - "oxidationStates": "4, 3", - "electronicConfiguration": "[Xe]4f³5d6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.67 - }, - { - "symbol": "Nd", - "atomicNumber": 60, - "atomicWeight": 144.24, - "density": 7.007, - "meltingPoint": 1294, - "boilingPoint": 3341, - "atomicRadius": 182, - "covalentRadius": 184, - "ionicRadius": "", - "atomicVolume": 20.6, - "specificHeat": 0.205, - "fusionHeat": 7.1, - "evaporationHeat": 289, - "thermalConductivity": "(16.5)", - "paulingNegativity": 1.14, - "firstIonizationPotential": 531.5, - "oxidationStates": 3, - "electronicConfiguration": "[Xe]4f5d6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.66 - }, - { - "symbol": "Pm", - "atomicNumber": 61, - "atomicWeight": 144.9127, - "density": 7.2, - "meltingPoint": 1441, - "boilingPoint": 3000, - "atomicRadius": "-", - "covalentRadius": 163, - "ionicRadius": "", - "atomicVolume": "-", - "specificHeat": 0.185, - "fusionHeat": "-", - "evaporationHeat": "-", - "thermalConductivity": 17.9, - "paulingNegativity": 0, - "firstIonizationPotential": 536, - "oxidationStates": 3, - "electronicConfiguration": "[Xe]4f5d6s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Sm", - "atomicNumber": 62, - "atomicWeight": 150.36, - "density": 7.52, - "meltingPoint": 1350, - "boilingPoint": 2064, - "atomicRadius": 181, - "covalentRadius": 162, - "ionicRadius": "", - "atomicVolume": 19.9, - "specificHeat": 0.18, - "fusionHeat": 8.9, - "evaporationHeat": 165, - "thermalConductivity": "(13.3)", - "paulingNegativity": 1.17, - "firstIonizationPotential": 540.1, - "oxidationStates": "3, 2", - "electronicConfiguration": "[Xe]4f5d6s²", - "latticeStructure": "RHL", - "latticeConstant": 9 - }, - { - "symbol": "Eu", - "atomicNumber": 63, - "atomicWeight": 151.965, - "density": 5.243, - "meltingPoint": 1095, - "boilingPoint": 1870, - "atomicRadius": 199, - "covalentRadius": 185, - "ionicRadius": "", - "atomicVolume": 28.9, - "specificHeat": 0.176, - "fusionHeat": "-", - "evaporationHeat": 176, - "thermalConductivity": 13.9, - "paulingNegativity": 0, - "firstIonizationPotential": 546.9, - "oxidationStates": "3, 2", - "electronicConfiguration": "[Xe]4f5d6s²", - "latticeStructure": "BCC", - "latticeConstant": 4.61 - }, - { - "symbol": "Gd", - "atomicNumber": 64, - "atomicWeight": 157.25, - "density": 7.9, - "meltingPoint": 1586, - "boilingPoint": 3539, - "atomicRadius": 179, - "covalentRadius": 161, - "ionicRadius": "", - "atomicVolume": 19.9, - "specificHeat": 0.23, - "fusionHeat": "-", - "evaporationHeat": 398, - "thermalConductivity": "(10.5)", - "paulingNegativity": 1.2, - "firstIonizationPotential": 594.2, - "oxidationStates": 3, - "electronicConfiguration": "[Xe]4f5d¹6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.64 - }, - { - "symbol": "Tb", - "atomicNumber": 65, - "atomicWeight": 158.92534, - "density": 8.229, - "meltingPoint": 1629, - "boilingPoint": 3296, - "atomicRadius": 180, - "covalentRadius": 159, - "ionicRadius": "", - "atomicVolume": 19.2, - "specificHeat": 0.183, - "fusionHeat": "-", - "evaporationHeat": 389, - "thermalConductivity": 11.1, - "paulingNegativity": 1.2, - "firstIonizationPotential": 569, - "oxidationStates": "4, 3", - "electronicConfiguration": "[Xe]4f5d6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.6 - }, - { - "symbol": "Dy", - "atomicNumber": 66, - "atomicWeight": 162.5, - "density": 8.55, - "meltingPoint": 1685, - "boilingPoint": 2835, - "atomicRadius": 180, - "covalentRadius": 159, - "ionicRadius": "", - "atomicVolume": 19, - "specificHeat": 0.173, - "fusionHeat": "-", - "evaporationHeat": 291, - "thermalConductivity": 10.7, - "paulingNegativity": "-", - "firstIonizationPotential": 567, - "oxidationStates": 3, - "electronicConfiguration": "[Xe]4f5d6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.59 - }, - { - "symbol": "Ho", - "atomicNumber": 67, - "atomicWeight": 164.93032, - "density": 8.795, - "meltingPoint": 1747, - "boilingPoint": 2968, - "atomicRadius": 179, - "covalentRadius": 158, - "ionicRadius": "", - "atomicVolume": 18.7, - "specificHeat": 0.164, - "fusionHeat": "-", - "evaporationHeat": 301, - "thermalConductivity": "(16.2)", - "paulingNegativity": 1.23, - "firstIonizationPotential": 574, - "oxidationStates": 3, - "electronicConfiguration": "[Xe]4f¹¹5d6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.58 - }, - { - "symbol": "Er", - "atomicNumber": 68, - "atomicWeight": 167.26, - "density": 9.06, - "meltingPoint": 1802, - "boilingPoint": 3136, - "atomicRadius": 178, - "covalentRadius": 157, - "ionicRadius": "", - "atomicVolume": 18.4, - "specificHeat": 0.168, - "fusionHeat": "-", - "evaporationHeat": 317, - "thermalConductivity": "(14.5)", - "paulingNegativity": 1.24, - "firstIonizationPotential": 581, - "oxidationStates": 3, - "electronicConfiguration": "[Xe]4f¹²5d6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.56 - }, - { - "symbol": "Tm", - "atomicNumber": 69, - "atomicWeight": 168.93421, - "density": 9.321, - "meltingPoint": 1818, - "boilingPoint": 2220, - "atomicRadius": 177, - "covalentRadius": 156, - "ionicRadius": "", - "atomicVolume": 18.1, - "specificHeat": 0.16, - "fusionHeat": "-", - "evaporationHeat": 232, - "thermalConductivity": "(16.9)", - "paulingNegativity": 1.25, - "firstIonizationPotential": 589, - "oxidationStates": "3, 2", - "electronicConfiguration": "[Xe]4f¹³5d6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.54 - }, - { - "symbol": "Yb", - "atomicNumber": 70, - "atomicWeight": 173.04, - "density": 6.9654, - "meltingPoint": 1097, - "boilingPoint": 1466, - "atomicRadius": 194, - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": 24.8, - "specificHeat": 0.145, - "fusionHeat": 3.35, - "evaporationHeat": 159, - "thermalConductivity": "(34.9)", - "paulingNegativity": 1.1, - "firstIonizationPotential": 603, - "oxidationStates": "3, 2", - "electronicConfiguration": "[Xe]4f¹5d¹6s²", - "latticeStructure": "FCC", - "latticeConstant": 5.49 - }, - { - "symbol": "Lu", - "atomicNumber": 71, - "atomicWeight": 174.967, - "density": 9.8404, - "meltingPoint": 1936, - "boilingPoint": 3668, - "atomicRadius": 175, - "covalentRadius": 156, - "ionicRadius": "", - "atomicVolume": 17.8, - "specificHeat": 0.155, - "fusionHeat": "-", - "evaporationHeat": 414, - "thermalConductivity": "(16.4)", - "paulingNegativity": 1.27, - "firstIonizationPotential": 513, - "oxidationStates": 3, - "electronicConfiguration": "[Xe]4f¹5d¹6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.51 - }, - { - "symbol": "Hf", - "atomicNumber": 72, - "atomicWeight": 178.49, - "density": 13.31, - "meltingPoint": 2503, - "boilingPoint": 5470, - "atomicRadius": 167, - "covalentRadius": 144, - "ionicRadius": "", - "atomicVolume": 13.6, - "specificHeat": 0.146, - "fusionHeat": "(25.1)", - "evaporationHeat": 575, - "thermalConductivity": 23, - "paulingNegativity": 1.3, - "firstIonizationPotential": 575.2, - "oxidationStates": 4, - "electronicConfiguration": "[Xe]4f¹5d²6s²", - "latticeStructure": "HEX", - "latticeConstant": 3.2 - }, - { - "symbol": "Ta", - "atomicNumber": 73, - "atomicWeight": 180.9479, - "density": 16.654, - "meltingPoint": 3269, - "boilingPoint": 5698, - "atomicRadius": 149, - "covalentRadius": 134, - "ionicRadius": "", - "atomicVolume": 10.9, - "specificHeat": 0.14, - "fusionHeat": 24.7, - "evaporationHeat": 758, - "thermalConductivity": 57.5, - "paulingNegativity": 1.5, - "firstIonizationPotential": 760.1, - "oxidationStates": 5, - "electronicConfiguration": "[Xe]4f¹5d³6s²", - "latticeStructure": "BCC", - "latticeConstant": 3.31 - }, - { - "symbol": "W", - "atomicNumber": 74, - "atomicWeight": 183.84, - "density": 19.3, - "meltingPoint": 3680, - "boilingPoint": 5930, - "atomicRadius": 141, - "covalentRadius": 130, - "ionicRadius": "", - "atomicVolume": 9.53, - "specificHeat": 0.133, - "fusionHeat": "(35)", - "evaporationHeat": 824, - "thermalConductivity": 173, - "paulingNegativity": 1.7, - "firstIonizationPotential": 769.7, - "oxidationStates": "6, 5, 4, 3, 2, 0", - "electronicConfiguration": "[Xe]4f¹5d6s²", - "latticeStructure": "BCC", - "latticeConstant": 3.16 - }, - { - "symbol": "Re", - "atomicNumber": 75, - "atomicWeight": 186.207, - "density": 21.02, - "meltingPoint": 3453, - "boilingPoint": 5900, - "atomicRadius": 137, - "covalentRadius": 128, - "ionicRadius": "", - "atomicVolume": 8.85, - "specificHeat": 0.138, - "fusionHeat": 34, - "evaporationHeat": 704, - "thermalConductivity": 48, - "paulingNegativity": 1.9, - "firstIonizationPotential": 759.1, - "oxidationStates": "5, 4, 3, 2, -1", - "electronicConfiguration": "[Xe]4f¹5d6s²", - "latticeStructure": "HEX", - "latticeConstant": 2.76 - }, - { - "symbol": "Os", - "atomicNumber": 76, - "atomicWeight": 190.23, - "density": 22.57, - "meltingPoint": 3327, - "boilingPoint": 5300, - "atomicRadius": 135, - "covalentRadius": 126, - "ionicRadius": "", - "atomicVolume": 8.43, - "specificHeat": 0.131, - "fusionHeat": 31.7, - "evaporationHeat": 738, - "thermalConductivity": "(87.6)", - "paulingNegativity": 2.2, - "firstIonizationPotential": 819.8, - "oxidationStates": "8, 6, 4, 3, 2, 0, -2", - "electronicConfiguration": "[Xe]4f¹5d6s²", - "latticeStructure": "HEX", - "latticeConstant": 2.74 - }, - { - "symbol": "Ir", - "atomicNumber": 77, - "atomicWeight": 192.22, - "density": 22.42, - "meltingPoint": 2683, - "boilingPoint": 4403, - "atomicRadius": 136, - "covalentRadius": 127, - "ionicRadius": "", - "atomicVolume": 8.54, - "specificHeat": 0.133, - "fusionHeat": 27.61, - "evaporationHeat": 604, - "thermalConductivity": 147, - "paulingNegativity": 2.2, - "firstIonizationPotential": 868.1, - "oxidationStates": "6, 4, 3, 2, 1, 0, -1", - "electronicConfiguration": "[Xe]4f¹5d6s²", - "latticeStructure": "FCC", - "latticeConstant": 3.84 - }, - { - "symbol": "Pt", - "atomicNumber": 78, - "atomicWeight": 195.08, - "density": 21.45, - "meltingPoint": 2045, - "boilingPoint": 4100, - "atomicRadius": 139, - "covalentRadius": 130, - "ionicRadius": "", - "atomicVolume": 9.1, - "specificHeat": 0.133, - "fusionHeat": 21.76, - "evaporationHeat": "~470", - "thermalConductivity": 71.6, - "paulingNegativity": 2.28, - "firstIonizationPotential": 868.1, - "oxidationStates": "4, 2, 0", - "electronicConfiguration": "[Xe]4f¹5d6s²", - "latticeStructure": "FCC", - "latticeConstant": 3.92 - }, - { - "symbol": "Au", - "atomicNumber": 79, - "atomicWeight": 196.96654, - "density": 19.3, - "meltingPoint": 1337.58, - "boilingPoint": 3080, - "atomicRadius": 146, - "covalentRadius": 134, - "ionicRadius": "", - "atomicVolume": 10.2, - "specificHeat": 0.129, - "fusionHeat": 12.68, - "evaporationHeat": "~340", - "thermalConductivity": 318, - "paulingNegativity": 2.54, - "firstIonizationPotential": 889.3, - "oxidationStates": "3, 1", - "electronicConfiguration": "[Xe]4f¹5d¹6s²", - "latticeStructure": "FCC", - "latticeConstant": 4.08 - }, - { - "symbol": "Hg", - "atomicNumber": 80, - "atomicWeight": 200.59, - "density": "13.546 (@ +20°C)", - "meltingPoint": 234.28, - "boilingPoint": 629.73, - "atomicRadius": 157, - "covalentRadius": 149, - "ionicRadius": "", - "atomicVolume": 14.8, - "specificHeat": 0.138, - "fusionHeat": 2.295, - "evaporationHeat": 58.5, - "thermalConductivity": 8.3, - "paulingNegativity": 2, - "firstIonizationPotential": 1006, - "oxidationStates": "2, 1", - "electronicConfiguration": "[Xe]4f¹5d¹6s²", - "latticeStructure": "RHL", - "latticeConstant": 2.99 - }, - { - "symbol": "Tl", - "atomicNumber": 81, - "atomicWeight": 204.3833, - "density": 11.85, - "meltingPoint": 576.6, - "boilingPoint": 1730, - "atomicRadius": 171, - "covalentRadius": 148, - "ionicRadius": "", - "atomicVolume": 17.2, - "specificHeat": 0.128, - "fusionHeat": 4.31, - "evaporationHeat": 162.4, - "thermalConductivity": 46.1, - "paulingNegativity": 1.62, - "firstIonizationPotential": 588.9, - "oxidationStates": "3, 1", - "electronicConfiguration": "[Xe]4f¹5d¹6s²6p¹", - "latticeStructure": "HEX", - "latticeConstant": 3.46 - }, - { - "symbol": "Pb", - "atomicNumber": 82, - "atomicWeight": 207.2, - "density": 11.35, - "meltingPoint": 600.65, - "boilingPoint": 2013, - "atomicRadius": 175, - "covalentRadius": 147, - "ionicRadius": "", - "atomicVolume": 18.3, - "specificHeat": 0.159, - "fusionHeat": 4.77, - "evaporationHeat": 177.8, - "thermalConductivity": 35.3, - "paulingNegativity": 1.8, - "firstIonizationPotential": 715.2, - "oxidationStates": "4, 2", - "electronicConfiguration": "[Xe]4f¹5d¹6s²6p²", - "latticeStructure": "FCC", - "latticeConstant": 4.95 - }, - { - "symbol": "Bi", - "atomicNumber": 83, - "atomicWeight": 208.98037, - "density": 9.747, - "meltingPoint": 544.5, - "boilingPoint": 1883, - "atomicRadius": 170, - "covalentRadius": 146, - "ionicRadius": "", - "atomicVolume": 21.3, - "specificHeat": 0.124, - "fusionHeat": 11, - "evaporationHeat": 172, - "thermalConductivity": 7.9, - "paulingNegativity": 2.02, - "firstIonizationPotential": 702.9, - "oxidationStates": "5, 3", - "electronicConfiguration": "[Xe]4f¹5d¹6s²6p³", - "latticeStructure": "RHL", - "latticeConstant": 4.75 - }, - { - "symbol": "Po", - "atomicNumber": 84, - "atomicWeight": 208.9824, - "density": 9.32, - "meltingPoint": 527, - "boilingPoint": 1235, - "atomicRadius": 176, - "covalentRadius": 146, - "ionicRadius": "", - "atomicVolume": 22.7, - "specificHeat": 0.125, - "fusionHeat": "(10)", - "evaporationHeat": "(102.9)", - "thermalConductivity": "-", - "paulingNegativity": 2, - "firstIonizationPotential": 813.1, - "oxidationStates": "6, 4, 2", - "electronicConfiguration": "[Xe]4f¹5d¹6s²6p", - "latticeStructure": "SC", - "latticeConstant": 3.35 - }, - { - "symbol": "At", - "atomicNumber": 85, - "atomicWeight": 209.9871, - "density": "n/a", - "meltingPoint": 575, - "boilingPoint": 610, - "atomicRadius": "-", - "covalentRadius": "(145)", - "ionicRadius": "", - "atomicVolume": "-", - "specificHeat": "-", - "fusionHeat": "-", - "evaporationHeat": "-", - "thermalConductivity": "-", - "paulingNegativity": 2.2, - "firstIonizationPotential": 916.3, - "oxidationStates": "7, 5, 3, 1, -1", - "electronicConfiguration": "[Xe]4f¹5d¹6s²6p", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Rn", - "atomicNumber": 86, - "atomicWeight": 222.0176, - "density": "4.4 (@ -62°C)", - "meltingPoint": 202, - "boilingPoint": 211.4, - "atomicRadius": "-", - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": "-", - "specificHeat": 0.094, - "fusionHeat": "-", - "evaporationHeat": 18.1, - "thermalConductivity": 0.0036, - "paulingNegativity": "-", - "firstIonizationPotential": 1036.5, - "oxidationStates": "-", - "electronicConfiguration": "[Xe]4f¹5d¹6s²6p", - "latticeStructure": "FCC", - "latticeConstant": "n/a" - }, - { - "symbol": "Fr", - "atomicNumber": 87, - "atomicWeight": 223.0197, - "density": "n/a", - "meltingPoint": 300, - "boilingPoint": 950, - "atomicRadius": "-", - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": "-", - "specificHeat": "-", - "fusionHeat": 15, - "evaporationHeat": "-", - "thermalConductivity": "-", - "paulingNegativity": 0.7, - "firstIonizationPotential": "~375", - "oxidationStates": 2, - "electronicConfiguration": "[Rn]7s¹", - "latticeStructure": "BCC", - "latticeConstant": "n/a" - }, - { - "symbol": "Ra", - "atomicNumber": 88, - "atomicWeight": 226.0254, - "density": "(5.5)", - "meltingPoint": 973, - "boilingPoint": 1413, - "atomicRadius": "-", - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": 45, - "specificHeat": 0.12, - "fusionHeat": "(9.6)", - "evaporationHeat": "(113)", - "thermalConductivity": "(18.6)", - "paulingNegativity": 0.9, - "firstIonizationPotential": 509, - "oxidationStates": 2, - "electronicConfiguration": "[Rn]7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Ac", - "atomicNumber": 89, - "atomicWeight": 227.0278, - "density": "n/a", - "meltingPoint": 1320, - "boilingPoint": 3470, - "atomicRadius": 188, - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": 22.54, - "specificHeat": "-", - "fusionHeat": "(10.5)", - "evaporationHeat": "(292.9)", - "thermalConductivity": "-", - "paulingNegativity": 1.1, - "firstIonizationPotential": 665.5, - "oxidationStates": 3, - "electronicConfiguration": "[Rn]6d¹7s²", - "latticeStructure": "FCC", - "latticeConstant": 5.31 - }, - { - "symbol": "Th", - "atomicNumber": 90, - "atomicWeight": 232.0381, - "density": 11.78, - "meltingPoint": 2028, - "boilingPoint": 5060, - "atomicRadius": 180, - "covalentRadius": 165, - "ionicRadius": "", - "atomicVolume": 19.8, - "specificHeat": 0.113, - "fusionHeat": 16.11, - "evaporationHeat": 513.7, - "thermalConductivity": "(54.0)", - "paulingNegativity": 1.3, - "firstIonizationPotential": 670.4, - "oxidationStates": 4, - "electronicConfiguration": "[Rn]5f6d¹7s²", - "latticeStructure": "FCC", - "latticeConstant": 5.08 - }, - { - "symbol": "Pa", - "atomicNumber": 91, - "atomicWeight": 231.03588, - "density": 15.37, - "meltingPoint": 2113, - "boilingPoint": 4300, - "atomicRadius": 161, - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": 15, - "specificHeat": 0.121, - "fusionHeat": 16.7, - "evaporationHeat": 481.2, - "thermalConductivity": "-", - "paulingNegativity": 1.5, - "firstIonizationPotential": "n/a", - "oxidationStates": "5, 4", - "electronicConfiguration": "[Rn]5f²6d¹7s²", - "latticeStructure": "TET", - "latticeConstant": 3.92 - }, - { - "symbol": "U", - "atomicNumber": 92, - "atomicWeight": 238.0289, - "density": 19.05, - "meltingPoint": 1405.5, - "boilingPoint": 4018, - "atomicRadius": 138, - "covalentRadius": 142, - "ionicRadius": "", - "atomicVolume": 12.5, - "specificHeat": 0.115, - "fusionHeat": 12.6, - "evaporationHeat": 417, - "thermalConductivity": 27.5, - "paulingNegativity": 1.38, - "firstIonizationPotential": 686.4, - "oxidationStates": "6, 5, 4, 3", - "electronicConfiguration": "[Rn]5f³6d¹7s²", - "latticeStructure": "ORC", - "latticeConstant": 2.85 - }, - { - "symbol": "Np", - "atomicNumber": 93, - "atomicWeight": 237.048, - "density": 20.25, - "meltingPoint": 913, - "boilingPoint": 4175, - "atomicRadius": 130, - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": 21.1, - "specificHeat": "-", - "fusionHeat": "(9.6)", - "evaporationHeat": 336, - "thermalConductivity": "(6.3)", - "paulingNegativity": 1.36, - "firstIonizationPotential": "n/a", - "oxidationStates": "6, 5, 4, 3", - "electronicConfiguration": "[Rn]5f6d¹7s²", - "latticeStructure": "ORC", - "latticeConstant": 4.72 - }, - { - "symbol": "Pu", - "atomicNumber": 94, - "atomicWeight": 244.0642, - "density": 19.84, - "meltingPoint": 914, - "boilingPoint": 3505, - "atomicRadius": 151, - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": "-", - "specificHeat": "-", - "fusionHeat": 2.8, - "evaporationHeat": 343.5, - "thermalConductivity": "(6.7)", - "paulingNegativity": 1.28, - "firstIonizationPotential": 491.9, - "oxidationStates": "6, 5, 4, 3", - "electronicConfiguration": "[Rn]5f6d7s²", - "latticeStructure": "MCL", - "latticeConstant": "n/a" - }, - { - "symbol": "Am", - "atomicNumber": 95, - "atomicWeight": 243.0614, - "density": 13.67, - "meltingPoint": 1267, - "boilingPoint": 2880, - "atomicRadius": 173, - "covalentRadius": "-", - "ionicRadius": "", - "atomicVolume": 20.8, - "specificHeat": "-", - "fusionHeat": "(10.0)", - "evaporationHeat": 238.5, - "thermalConductivity": "-", - "paulingNegativity": 1.3, - "firstIonizationPotential": "n/a", - "oxidationStates": "6, 5, 4, 3", - "electronicConfiguration": "[Rn]5f6d7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Cm", - "atomicNumber": 96, - "atomicWeight": 247.0703, - "density": 13.51, - "meltingPoint": 1340, - "boilingPoint": "n/a", - "atomicRadius": 299, - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": 18.28, - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": 1.3, - "firstIonizationPotential": "(580)", - "oxidationStates": "4, 3", - "electronicConfiguration": "[Rn]5f6d¹7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/A" - }, - { - "symbol": "Bk", - "atomicNumber": 97, - "atomicWeight": 247.0703, - "density": 13.25, - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": 297, - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": 1.3, - "firstIonizationPotential": "(600)", - "oxidationStates": "4, 3", - "electronicConfiguration": "[Rn]5f6d7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Cf", - "atomicNumber": 98, - "atomicWeight": 251.0796, - "density": 15.1, - "meltingPoint": 900, - "boilingPoint": "n/a", - "atomicRadius": 295, - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": 1.3, - "firstIonizationPotential": "(610)", - "oxidationStates": "4, 3", - "electronicConfiguration": "[Rn]5f¹6d7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Es", - "atomicNumber": 99, - "atomicWeight": 252.083, - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": 1130, - "atomicRadius": 292, - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": 1.3, - "firstIonizationPotential": "(620)", - "oxidationStates": 3, - "electronicConfiguration": "[Rn]5f¹¹6d7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Fm", - "atomicNumber": 100, - "atomicWeight": 257.0951, - "density": "n/a", - "meltingPoint": 1800, - "boilingPoint": "n/a", - "atomicRadius": 290, - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": 1.3, - "firstIonizationPotential": "(630)", - "oxidationStates": 3, - "electronicConfiguration": "[Rn]5f¹²6d7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Md", - "atomicNumber": 101, - "atomicWeight": 258.1, - "density": "n/a", - "meltingPoint": 1100, - "boilingPoint": "n/a", - "atomicRadius": 287, - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": 1.3, - "firstIonizationPotential": "(635)", - "oxidationStates": 3, - "electronicConfiguration": "[Rn]5f¹³6d7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "No", - "atomicNumber": 102, - "atomicWeight": 259.1009, - "density": "n/a", - "meltingPoint": 1100, - "boilingPoint": "n/a", - "atomicRadius": 285, - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": 1.3, - "firstIonizationPotential": "(640)", - "oxidationStates": "3,2", - "electronicConfiguration": "[Rn]5f¹6d7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Lr", - "atomicNumber": 103, - "atomicWeight": 262.11, - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": 282, - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": 3, - "electronicConfiguration": "[Rn]5f¹6d¹7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Rf", - "atomicNumber": 104, - "atomicWeight": "[261]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "-", - "electronicConfiguration": "[Rn]5f¹6d²7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Db", - "atomicNumber": 105, - "atomicWeight": "[262]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "-", - "electronicConfiguration": "[Rn]5f¹6d³6s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Sg", - "atomicNumber": 106, - "atomicWeight": "[266]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "-", - "electronicConfiguration": "[Rn]5f¹6d¹7s²", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Bh", - "atomicNumber": 107, - "atomicWeight": "[264]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Hs", - "atomicNumber": 108, - "atomicWeight": "[269]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Mt", - "atomicNumber": 109, - "atomicWeight": "[268]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Uun", - "atomicNumber": 110, - "atomicWeight": "[269]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Uuu", - "atomicNumber": 111, - "atomicWeight": "[272]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Uub", - "atomicNumber": 112, - "atomicWeight": "[277]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Uut", - "atomicNumber": 113, - "atomicWeight": "n/a", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Uuq", - "atomicNumber": 114, - "atomicWeight": "[289]", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Uup", - "atomicNumber": 115, - "atomicWeight": "n/a", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Uuh", - "atomicNumber": 116, - "atomicWeight": "n/a", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Uus", - "atomicNumber": 117, - "atomicWeight": "n/a", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" - }, - { - "symbol": "Uuo", - "atomicNumber": 118, - "atomicWeight": "n/a", - "density": "n/a", - "meltingPoint": "n/a", - "boilingPoint": "n/a", - "atomicRadius": "n/a", - "covalentRadius": "n/a", - "ionicRadius": "", - "atomicVolume": "n/a", - "specificHeat": "n/a", - "fusionHeat": "n/a", - "evaporationHeat": "n/a", - "thermalConductivity": "n/a", - "paulingNegativity": "n/a", - "firstIonizationPotential": "n/a", - "oxidationStates": "n/a", - "electronicConfiguration": "n/a", - "latticeStructure": "n/a", - "latticeConstant": "n/a" } ] } diff --git a/example/material/fingerprint/primary/chemical.json b/example/material/fingerprint/primary/chemical.json index e4f6b3b8c..8f6441e50 100644 --- a/example/material/fingerprint/primary/chemical.json +++ b/example/material/fingerprint/primary/chemical.json @@ -1,12 +1,8 @@ { "coordinationNumber": [ - [ - 0 - ] + 0 ], "localEnvironment": [ - [ - 5 - ] + "X" ] } diff --git a/example/material/fingerprint/primary/electronic.json b/example/material/fingerprint/primary/electronic.json index 48daf575d..df15dfb6b 100644 --- a/example/material/fingerprint/primary/electronic.json +++ b/example/material/fingerprint/primary/electronic.json @@ -1,15 +1,13 @@ { - "elementSpinStates": [ - [ - 0 - ] + "elementSpinState": [ + "low" ], "valenceOrbitalOccupancy": [ - [ - 0.5, - 0.5, - 0.0, - 0.0 - ] + { + "s": 0.5, + "p": 0.5, + "d": 0.0, + "f": 0.0 + } ] } diff --git a/example/material/fingerprint/primary/structural.json b/example/material/fingerprint/primary/structural.json index f69884842..6f759b064 100644 --- a/example/material/fingerprint/primary/structural.json +++ b/example/material/fingerprint/primary/structural.json @@ -1,5 +1,4 @@ { - "type": "CUB", "representation": "primitive", "equilibrium": "Yes", "materialType": "crystal", diff --git a/example/material/structure/lattice_bravais.json b/example/material/structure/lattice_bravais.json index 404bc6c55..854f8798d 100644 --- a/example/material/structure/lattice_bravais.json +++ b/example/material/structure/lattice_bravais.json @@ -1,5 +1,5 @@ { - "...": "include(lattice_type.json)", + "type": "CUB", "name": "lattice_bravais", "a": 5.14, "b": 5.14, diff --git a/example/material/structure/lattice_type.json b/example/material/structure/lattice_type.json deleted file mode 100644 index 36b54d288..000000000 --- a/example/material/structure/lattice_type.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "CUB" -} diff --git a/schema/job.json b/schema/job.json index f9641f5b8..e96d9e7b0 100644 --- a/schema/job.json +++ b/schema/job.json @@ -76,7 +76,7 @@ "_materials": { "description": "Subset of the full information about the materials used inside this job.", "type": "array", - "items":{ + "items": { "$ref": "file:job/_material.json" } }, diff --git a/schema/job/_material.json b/schema/job/_material.json index ee21812cb..2bab66f89 100644 --- a/schema/job/_material.json +++ b/schema/job/_material.json @@ -14,10 +14,6 @@ "exabyteId": { "description": "Corresponding Materials Bank identity", "type": "string" - }, - "fingerprint": { - "description": "Material fingerprint with primary/secondary and tertiary descriptors", - "$ref": "../material/fingerprint.json" } }, "required": [ diff --git a/schema/material/fingerprint/primary/_valence.json b/schema/material/fingerprint/primary/_valence.json new file mode 100644 index 000000000..f97b3b658 --- /dev/null +++ b/schema/material/fingerprint/primary/_valence.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "valence orbital occupancy electronic descriptor schema", + "description": "s,p,d,f orbital contributions to valence for individual element", + "properties": { + "s":{ + "type" : "number" + }, + "p": { + "type": "number" + }, + "d": { + "type": "number" + }, + "f": { + "type": "number" + } + } +} diff --git a/schema/material/fingerprint/primary/chemical.json b/schema/material/fingerprint/primary/chemical.json index c8854ae2c..e1f8aa927 100644 --- a/schema/material/fingerprint/primary/chemical.json +++ b/schema/material/fingerprint/primary/chemical.json @@ -4,11 +4,24 @@ "properties": { "coordinationNumber": { "description": "coordination numbers of all elements", - "$ref": "file:../../../primitive/1d_data_series.json" + "items": { + "type": "number" + } }, "localEnvironment": { - "description": "Represents the atom type each element is bonded to in the list [H, O, S, F, Cl, X]. X means an element is either non-bonded or bonded to any atom other than the atoms in the list", - "$ref": "file:../../../primitive/1d_data_series.json" + "description": "Represents the atom type each element is bonded to. X means an element is either non-bonded or bonded to any atom other than the atoms in the list", + "type": "array", + "items": { + "type" : "string", + "enum": [ + "H", + "O", + "S", + "F", + "Cl", + "X" + ] + } } } } diff --git a/schema/material/fingerprint/primary/electronic.json b/schema/material/fingerprint/primary/electronic.json index 7b024d82e..69e6bc59c 100644 --- a/schema/material/fingerprint/primary/electronic.json +++ b/schema/material/fingerprint/primary/electronic.json @@ -2,16 +2,25 @@ "$schema": "http://json-schema.org/draft-04/schema#", "title": "electronic descriptors schema", "properties": { - "elementSpinStates": { + "elementSpinState": { "description": "Spin state of each element. Spin state depends on oxidation state and electronic configuration. ", - "$ref": "file:../../../primitive/1d_data_series.json" + "type": "array", + "items": { + "description": "high and low spin states correspond to states with max number of unpaired electrons with same spin and maximum number of paired spins respectively.", + "type": "string", + "enum":[ + "high", + "intermediate", + "low" + ] + } }, "valenceOrbitalOccupancy": { "description": "valence orbital occupation - contribution from s, p, d, and f to valence - depends on electronic configuration. Ref:https://www.nature.com/articles/npjcompumats201628#s1", "type": "array", "items": { "description": "array of s,p,d,f contributions for individual element ", - "ref": "file:../../../primitive/1d_data_series.json" + "$ref": "file:_valence.json" } } } diff --git a/schema/material/fingerprint/primary/structural.json b/schema/material/fingerprint/primary/structural.json index 2f714522a..e59f16ad5 100644 --- a/schema/material/fingerprint/primary/structural.json +++ b/schema/material/fingerprint/primary/structural.json @@ -1,11 +1,6 @@ { "$schema": "http://json-schema.org/draft-04/schema#", "title": "structural descriptors schema", - "allOf": [ - { - "$ref": "file:../../structure/lattice_type.json" - } - ], "properties": { "representation": { "description": "structure representation.", diff --git a/schema/material/structure/lattice_bravais.json b/schema/material/structure/lattice_bravais.json index 630aea36f..bc08ddc1b 100644 --- a/schema/material/structure/lattice_bravais.json +++ b/schema/material/structure/lattice_bravais.json @@ -4,12 +4,29 @@ "allOf": [ { "$ref": "file:../../primitive/3d_lattice.json" - }, - { - "$ref": "file:lattice_type.json" } ], "properties": { + "type": { + "description": "Bravais lattice type in short notation", + "type": "string", + "enum": [ + "CUB", + "BCC", + "FCC", + "TET", + "MCL", + "ORC", + "ORCC", + "ORCF", + "ORCI", + "HEX", + "BCT", + "TRI", + "MCLC", + "RHL" + ] + }, "units": { "type": "object", "properties": { @@ -29,5 +46,8 @@ } } } - } + }, + "required": [ + "type" + ] } diff --git a/schema/material/structure/lattice_type.json b/schema/material/structure/lattice_type.json deleted file mode 100644 index 55e555779..000000000 --- a/schema/material/structure/lattice_type.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "lattice type schema", - "properties": { - "type": { - "description": "Bravais lattice type in short notation", - "type": "string", - "enum": [ - "CUB", - "BCC", - "FCC", - "TET", - "MCL", - "ORC", - "ORCC", - "ORCF", - "ORCI", - "HEX", - "BCT", - "TRI", - "MCLC", - "RHL" - ] - } - }, - "required": [ - "type" - ] -} From 43689b6b89530b36a8bbbb42b1b9d0f4e49d888e Mon Sep 17 00:00:00 2001 From: Phani Date: Wed, 10 May 2017 16:46:13 -0700 Subject: [PATCH 40/63] cleanup --- example/job.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/example/job.json b/example/job.json index cf3028f75..6870f32e1 100644 --- a/example/job.json +++ b/example/job.json @@ -1,9 +1,6 @@ { "status": "pre-submission", "mode": "normal", - "_project": { - "...": "include(job/_project.json)" - }, "_materials": [ { "...": "include(job/_material.json)" @@ -26,5 +23,8 @@ "creator": { "_id": "HtxACY2wX4b2hS8Rv", "name": "demo" + }, + "_project": { + "...": "include(job/_project.json)" } } From 12894d8f227001619b2899859f5ad6130d439fdc Mon Sep 17 00:00:00 2001 From: Phani Date: Fri, 12 May 2017 17:01:51 -0700 Subject: [PATCH 41/63] refactored material fingerprint schema --- example/material/elemental/elements.json | 26 --- example/material/fingerprint/primary.json | 39 +++-- .../fingerprint/primary/_primary.json | 5 + .../fingerprint/primary/chemical.json | 8 - .../fingerprint/primary/electronic.json | 13 -- .../primary/element_spin_state.json | 15 ++ .../primary/elemental_composition.json | 15 ++ .../primary/local_environment.json | 15 ++ .../material/fingerprint/primary/p_norm.json | 23 +++ .../fingerprint/primary/stoichiometric.json | 7 - .../fingerprint/primary/structural.json | 6 - .../primary/valence_orbital_occupancy.json | 23 +++ example/material/structure/atomic_data.json | 52 ------ .../material/structure/atomic_elements.json | 42 ++++- example/material/structure/atomic_masses.json | 10 -- example/material/structure/elements.json | 45 +++++ schema/material/elemental/_element.json | 92 ---------- schema/material/elemental/elements.json | 14 -- schema/material/fingerprint/primary.json | 110 +++++++++--- .../fingerprint/primary/_composition.json | 14 ++ .../primary/_local_environment.json | 23 +++ .../material/fingerprint/primary/_norm.json | 14 ++ .../fingerprint/primary/_primary.json | 32 ++++ .../fingerprint/primary/_spin_states.json | 20 +++ .../fingerprint/primary/_valence.json | 21 +-- .../fingerprint/primary/chemical.json | 27 --- .../fingerprint/primary/electronic.json | 27 --- .../primary/element_spin_state.json | 19 ++ .../primary/elemental_composition.json | 19 ++ .../primary/local_environment.json | 19 ++ .../material/fingerprint/primary/p_norm.json | 19 ++ .../fingerprint/primary/stoichiometric.json | 10 -- .../fingerprint/primary/structural.json | 37 ---- .../primary/valence_orbital_occupancy.json | 19 ++ schema/material/structure/atomic_data.json | 70 -------- .../material/structure/atomic_elements.json | 46 +++++ schema/material/structure/atomic_masses.json | 16 -- schema/material/structure/elements.json | 162 ++++++++++++++++++ 38 files changed, 714 insertions(+), 460 deletions(-) delete mode 100644 example/material/elemental/elements.json create mode 100644 example/material/fingerprint/primary/_primary.json delete mode 100644 example/material/fingerprint/primary/chemical.json delete mode 100644 example/material/fingerprint/primary/electronic.json create mode 100644 example/material/fingerprint/primary/element_spin_state.json create mode 100644 example/material/fingerprint/primary/elemental_composition.json create mode 100644 example/material/fingerprint/primary/local_environment.json create mode 100644 example/material/fingerprint/primary/p_norm.json delete mode 100644 example/material/fingerprint/primary/stoichiometric.json delete mode 100644 example/material/fingerprint/primary/structural.json create mode 100644 example/material/fingerprint/primary/valence_orbital_occupancy.json delete mode 100644 example/material/structure/atomic_data.json delete mode 100644 example/material/structure/atomic_masses.json create mode 100644 example/material/structure/elements.json delete mode 100644 schema/material/elemental/_element.json delete mode 100644 schema/material/elemental/elements.json create mode 100644 schema/material/fingerprint/primary/_composition.json create mode 100644 schema/material/fingerprint/primary/_local_environment.json create mode 100644 schema/material/fingerprint/primary/_norm.json create mode 100644 schema/material/fingerprint/primary/_primary.json create mode 100644 schema/material/fingerprint/primary/_spin_states.json delete mode 100644 schema/material/fingerprint/primary/chemical.json delete mode 100644 schema/material/fingerprint/primary/electronic.json create mode 100644 schema/material/fingerprint/primary/element_spin_state.json create mode 100644 schema/material/fingerprint/primary/elemental_composition.json create mode 100644 schema/material/fingerprint/primary/local_environment.json create mode 100644 schema/material/fingerprint/primary/p_norm.json delete mode 100644 schema/material/fingerprint/primary/stoichiometric.json delete mode 100644 schema/material/fingerprint/primary/structural.json create mode 100644 schema/material/fingerprint/primary/valence_orbital_occupancy.json delete mode 100644 schema/material/structure/atomic_data.json delete mode 100644 schema/material/structure/atomic_masses.json create mode 100644 schema/material/structure/elements.json diff --git a/example/material/elemental/elements.json b/example/material/elemental/elements.json deleted file mode 100644 index fde880199..000000000 --- a/example/material/elemental/elements.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "elements": [ - { - "symbol": "Si", - "atomicNumber": 14, - "atomicWeight": 28.0855, - "density": 2.33, - "meltingPoint": 1683, - "boilingPoint": 2628, - "atomicRadius": 132, - "covalentRadius": 111, - "ionicRadius": "", - "atomicVolume": 12.1, - "specificHeat": 0.703, - "fusionHeat": 50.6, - "evaporationHeat": 383, - "thermalConductivity": 149, - "paulingNegativity": 1.9, - "firstIonizationPotential": 786, - "oxidationStates": "4, -4", - "electronicConfiguration": "[Ne]3s²3p²", - "latticeStructure": "DIA", - "latticeConstant": 5.43 - } - ] -} diff --git a/example/material/fingerprint/primary.json b/example/material/fingerprint/primary.json index 2b9b1692b..dc6d7b58d 100644 --- a/example/material/fingerprint/primary.json +++ b/example/material/fingerprint/primary.json @@ -1,17 +1,36 @@ { - "stoichiometric": { - "...": "include(primary/stoichiometric.json)" + "localEnvironment": { + "...": "include(primary/local_environment.json)" }, - "structural": { - "...": "include(primary/structural.json)" + "elementSpinState": { + "...": "include(primary/element_spin_state.json)" }, - "electronic": { - "...": "include(primary/electronic.json)" + "valenceOrbitalOccupancy": { + "...": "include(primary/valence_orbital_occupancy.json)" }, - "chemical": { - "...": "include(primary/chemical.json)" + "pNorm": { + "...": "include(primary/p_norm.json)" }, - "elemental": { - "...": "include(../elemental/elements.json)" + "elementalComposition": { + "...": "include(primary/elemental_composition.json)" + }, + "representation": { + "...": "include(primary/_primary.json)", + "value": "supercell" + }, + "equilibrium": { + "...": "include(primary/_primary.json)", + "value": "No" + }, + "materialType": { + "...": "include(primary/_primary.json)", + "value": "crystal" + }, + "averageAtomVolume": { + "type": "compound-specific", + "subtype": "structural", + "variableType": "numeric", + "value": 0.039, + "units": "1/Ang^3" } } diff --git a/example/material/fingerprint/primary/_primary.json b/example/material/fingerprint/primary/_primary.json new file mode 100644 index 000000000..9bf136f0a --- /dev/null +++ b/example/material/fingerprint/primary/_primary.json @@ -0,0 +1,5 @@ +{ + "type": "compound-specific", + "subtype": "structural", + "variableType": "nominal" +} diff --git a/example/material/fingerprint/primary/chemical.json b/example/material/fingerprint/primary/chemical.json deleted file mode 100644 index 8f6441e50..000000000 --- a/example/material/fingerprint/primary/chemical.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "coordinationNumber": [ - 0 - ], - "localEnvironment": [ - "X" - ] -} diff --git a/example/material/fingerprint/primary/electronic.json b/example/material/fingerprint/primary/electronic.json deleted file mode 100644 index df15dfb6b..000000000 --- a/example/material/fingerprint/primary/electronic.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "elementSpinState": [ - "low" - ], - "valenceOrbitalOccupancy": [ - { - "s": 0.5, - "p": 0.5, - "d": 0.0, - "f": 0.0 - } - ] -} diff --git a/example/material/fingerprint/primary/element_spin_state.json b/example/material/fingerprint/primary/element_spin_state.json new file mode 100644 index 000000000..ef283cd99 --- /dev/null +++ b/example/material/fingerprint/primary/element_spin_state.json @@ -0,0 +1,15 @@ +{ + "type": "element-specific", + "subtype": "electronic", + "variableType": "nominal", + "elements": [ + { + "name": "Si", + "value": "high" + }, + { + "name": "O", + "value": "low" + } + ] +} diff --git a/example/material/fingerprint/primary/elemental_composition.json b/example/material/fingerprint/primary/elemental_composition.json new file mode 100644 index 000000000..04a7ac58b --- /dev/null +++ b/example/material/fingerprint/primary/elemental_composition.json @@ -0,0 +1,15 @@ +{ + "type": "compound-specific", + "subtype": "stoichiometric", + "variableType": "numeric", + "elements": [ + { + "name": "Si", + "value": 0.33 + }, + { + "name": "O", + "value": 0.66 + } + ] +} diff --git a/example/material/fingerprint/primary/local_environment.json b/example/material/fingerprint/primary/local_environment.json new file mode 100644 index 000000000..8d9f60ec0 --- /dev/null +++ b/example/material/fingerprint/primary/local_environment.json @@ -0,0 +1,15 @@ +{ + "type": "element-specific", + "subtype": "chemical", + "variableType": "nominal", + "elements": [ + { + "name": "Si", + "value": "O" + }, + { + "name": "O", + "value": "X" + } + ] +} diff --git a/example/material/fingerprint/primary/p_norm.json b/example/material/fingerprint/primary/p_norm.json new file mode 100644 index 000000000..b21a13744 --- /dev/null +++ b/example/material/fingerprint/primary/p_norm.json @@ -0,0 +1,23 @@ +{ + "type": "compound-specific", + "subtype": "stoichiometric", + "variableType": "numeric", + "dimensions": [ + { + "name": "p3", + "value": 0.693 + }, + { + "name": "p5", + "value": 0.671 + }, + { + "name": "p7", + "value": 0.667 + }, + { + "name": "p9", + "value": 0.667 + } + ] +} diff --git a/example/material/fingerprint/primary/stoichiometric.json b/example/material/fingerprint/primary/stoichiometric.json deleted file mode 100644 index e31636eb8..000000000 --- a/example/material/fingerprint/primary/stoichiometric.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "pNorm": { - "p0": 1.0, - "p2": 1.0, - "p5": 1.0 - } -} diff --git a/example/material/fingerprint/primary/structural.json b/example/material/fingerprint/primary/structural.json deleted file mode 100644 index 6f759b064..000000000 --- a/example/material/fingerprint/primary/structural.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "representation": "primitive", - "equilibrium": "Yes", - "materialType": "crystal", - "averageAtomVolume": 0.15 -} diff --git a/example/material/fingerprint/primary/valence_orbital_occupancy.json b/example/material/fingerprint/primary/valence_orbital_occupancy.json new file mode 100644 index 000000000..d995f4cfb --- /dev/null +++ b/example/material/fingerprint/primary/valence_orbital_occupancy.json @@ -0,0 +1,23 @@ +{ + "type": "compound-specific", + "subtype": "electronic", + "variableType": "numeric", + "orbitals": [ + { + "name": "s", + "value": 0.325 + }, + { + "name": "p", + "value": 0.625 + }, + { + "name": "d", + "value": 0.0 + }, + { + "name": "f", + "value": 0.0 + } + ] +} diff --git a/example/material/structure/atomic_data.json b/example/material/structure/atomic_data.json deleted file mode 100644 index a917f223a..000000000 --- a/example/material/structure/atomic_data.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "atomic_data", - "valenceElectrons": { - "value": [ - { - "id": 1, - "value": 4 - }, - { - "id": 2, - "value": 4 - } - ], - "name": "valence_electrons" - }, - "charges": { - "value": [ - { - "id": 1, - "value": 0.5 - }, - { - "id": 2, - "value": -0.5 - } - ], - "name": "charges", - "units": "electron charge" - }, - "forces": { - "value": [ - { - "id": 1, - "value": [ - -0.00456789, - 0.001000011, - -0.00100001 - ] - }, - { - "id": 2, - "value": [ - 0.004567891, - -0.00100001, - 0.001000011 - ] - } - ], - "name": "atomic_forces", - "units": "eV/a.u." - } -} diff --git a/example/material/structure/atomic_elements.json b/example/material/structure/atomic_elements.json index 5b269ab2d..2ac9359c0 100644 --- a/example/material/structure/atomic_elements.json +++ b/example/material/structure/atomic_elements.json @@ -1,10 +1,48 @@ [ { "id": 1, - "value": "Si" + "value": "Si", + "occurrence": 1.0, + "oxidationState": 0, + "ionicRadius": { + "value": 1.11, + "units": "pm" + }, + "charge": { + "value": 0.0, + "units": "electrons" + }, + "coordinationNumber": 12, + "forces": { + "value": [ + -0.00456789, + 0.001000011, + -0.00100001 + ], + "units": "eV/a.u." + } }, { "id": 2, - "value": "Si" + "value": "Si", + "occurrence": 1.0, + "oxidationState": 0, + "ionicRadius": { + "value": 1.11, + "units": "nm" + }, + "charge": { + "value": 0.0, + "units": "electrons" + }, + "coordinationNumber": 12, + "forces": { + "value": [ + -0.00456789, + 0.001000011, + -0.00100001 + ], + "units": "eV/a.u." + } } ] diff --git a/example/material/structure/atomic_masses.json b/example/material/structure/atomic_masses.json deleted file mode 100644 index 24ade9885..000000000 --- a/example/material/structure/atomic_masses.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "id": 1, - "value": 28 - }, - { - "id": 2, - "value": 28 - } -] diff --git a/example/material/structure/elements.json b/example/material/structure/elements.json new file mode 100644 index 000000000..edc329dfe --- /dev/null +++ b/example/material/structure/elements.json @@ -0,0 +1,45 @@ +{ + "element": "Si", + "valenceElectrons": { + "value": 6, + "name": "valence_electrons" + }, + "radicals": { + "value": 2, + "name": "radicals" + }, + "atomicRadius": { + "name": "atomic_radius", + "value": 1.11, + "units": "nm" + }, + "electronicConfiguration": { + "name": "electronic_configuration", + "value": "[Ne]3s23p2" + }, + "atomicMass": { + "name": "atomic_mass", + "value": 28.0855, + "units": "a.u." + }, + "paulingNegativity": { + "name": "electronegativity", + "value": 1.90, + "units": "pauling" + }, + "firstIonizationPotential": { + "name": "first_ionization_potential", + "value": 8.1517, + "units": "eV" + }, + "density": { + "name": "density", + "value": 2.33, + "units": "g/cm^3" + }, + "cohesiveEnergy": { + "name": "cohesive_energy", + "value": 4.63, + "units": "eV/atom" + } +} diff --git a/schema/material/elemental/_element.json b/schema/material/elemental/_element.json deleted file mode 100644 index cb07e790d..000000000 --- a/schema/material/elemental/_element.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "elemental properties schema", - "properties": { - "symbol": { - "description": "element symbol", - "type": "string" - }, - "atomicNumber": { - "type": "string" - }, - "atomicWeight": { - "description": "atomic mass in a.u", - "type": "number" - }, - "electronicConfiguration": { - "type": "string" - }, - "oxidationStates": { - "description": "List of oxidation states", - "type": "string" - }, - "atomicRadius": { - "description": "atomic radius. Units: pm", - "type": "string" - }, - "covalentRadius": { - "description": "calculated atomic radius in covalently bonded crystal environments. Units: pm", - "type": "string" - }, - "ionicRadius": { - "description": "measured ionic radius. Units: pm", - "type": "string" - }, - "paulingNegativity": { - "description": "Pauling's electronegativity", - "type": "string" - }, - "firstIonizationPotential": { - "description": "Ionization energy from 0 to +1 oxidation state. Units: kJ/mol", - "type": "string" - }, - "latticeStructure": { - "description": "bravais lattice type of elemental crystal", - "type": "string" - }, - "latticeConstant": { - "description": "lattice constant of elemental crystal", - "type": "string" - }, - "density": { - "description": "density of elemental crystal. Units: g/cm3", - "type": "string" - }, - "meltingPoint": { - "description": "melting point of elemental crystal. Units: K", - "type": "string" - }, - "boilingPoint": { - "description": "boiling point of elemental crystal. Units: K", - "type": "string" - }, - "atomicVolume": { - "description": "normalized volume per atom in elemental crystal. Units: cm**3/mol", - "type": "string" - }, - "specificHeat": { - "description": "specific heat at constant volume (Cv). Units: J/g/mol", - "type": "string" - }, - "fusionHeat": { - "description": "Heat of Fusion. Units: kJ/mol", - "type": "string" - }, - "evaporationHeat": { - "description": "Heat of Evaporation or Sublimation. Units: kJ/mol", - "type": "string" - }, - "thermalConductivity": { - "description": "Thermal conductivity. Units: W/m/K at 25degC", - "type": "string" - } - }, - "required": [ - "symbol", - "atomicNumber", - "atomicWeight", - "electronicConfiguration", - "oxidationStates", - "atomicRadius" - ] -} diff --git a/schema/material/elemental/elements.json b/schema/material/elemental/elements.json deleted file mode 100644 index 063a67358..000000000 --- a/schema/material/elemental/elements.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "elemental properties collection schema", - "properties": { - "elements": { - "description": "elemental properties of all unique elements in the material", - "type": "array", - "items": { - "description": "elemental properties of individual element ", - "ref": "file:_element.json" - } - } - } -} diff --git a/schema/material/fingerprint/primary.json b/schema/material/fingerprint/primary.json index e23d729a6..d0379a52e 100644 --- a/schema/material/fingerprint/primary.json +++ b/schema/material/fingerprint/primary.json @@ -3,32 +3,96 @@ "title": "primary descriptors schema", "description": "collection of stoichiometric, structural, physical, electronic and chemical", "properties": { - "stoichiometric": { - "description": "composition descriptors", - "$ref": "file:primary/stoichiometric.json" + "localEnvironment": { + "description": "atom type each element is bonded to", + "$ref": "file:primary/local_environment.json" }, - "structural": { - "description": "structural descriptors", - "$ref": "file:primary/structural.json" + "elementSpinState": { + "description": "Spin state of each element. Spin state depends on oxidation state and electronic configuration. ", + "$ref": "file:primary/element_spin_state.json" }, - "electronic": { - "description": "electronic descriptors", - "$ref": "file:primary/electronic.json" + "valenceOrbitalOccupancy": { + "description": "contribution from s, p, d, and f of unique elements to total valence electrons in the material ", + "$ref": "file:primary/valence_orbital_occupancy.json" }, - "chemical": { - "description": "chemical descriptors", - "$ref": "file:primary/chemical.json" + "pNorm": { + "description": "values calculated using L-p norm upto p-dimensions", + "$ref": "file:primary/p_norm.json" }, - "elemental": { - "description": "elemental descriptors", - "$ref": "file:../elemental/elements.json" + "elementalComposition": { + "description": "elemental composition of the compound", + "$ref": "file:primary/elemental_composition.json" + }, + "representation": { + "description": "structure representation.", + "allOf": [ + { + "$ref": "file:primary/_primary.json" + } + ], + "properties": { + "value": { + "type": "string", + "enum": [ + "primitive", + "conventional", + "supercell" + ] + } + } + }, + "equilibrium": { + "description": "Identifies a equilibrium structure.", + "allOf": [ + { + "$ref": "file:primary/_primary.json" + } + ], + "properties": { + "value": { + "type": "string", + "enum": [ + "Yes", + "No" + ] + } + } + }, + "materialType": { + "description": "Material type.", + "allOf": [ + { + "$ref": "file:primary/_primary.json" + } + ], + "properties": { + "value": { + "type": "string", + "enum": [ + "crystal", + "amorphous", + "polymer", + "molecule" + ] + } + } + }, + "averageAtomVolume": { + "allOf": [ + { + "$ref": "file:primary/_primary.json" + } + ], + "description": "Averaged volume per atom.", + "properties": { + "value": { + "type": "number" + }, + "units": { + "description": "Example: 1/Ang^3", + "type": "string" + } + } } - }, - "required": [ - "stoichiometric", - "structural", - "electronic", - "chemical", - "elemental" - ] + } } diff --git a/schema/material/fingerprint/primary/_composition.json b/schema/material/fingerprint/primary/_composition.json new file mode 100644 index 000000000..509b7fdbc --- /dev/null +++ b/schema/material/fingerprint/primary/_composition.json @@ -0,0 +1,14 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "elemental composition schema", + "description": "calculated composition of each element in a material", + "properties": { + "name": { + "description": "element symbol. Eg: Si", + "type": "string" + }, + "value": { + "type": "number" + } + } +} diff --git a/schema/material/fingerprint/primary/_local_environment.json b/schema/material/fingerprint/primary/_local_environment.json new file mode 100644 index 000000000..896fc986e --- /dev/null +++ b/schema/material/fingerprint/primary/_local_environment.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "local environment around an atom schema", + "description": "local environment around each element defined by atom type each element is bonded to", + "properties": { + "name": { + "description": "element symbol. Eg: Si", + "type": "string" + }, + "value": { + "description": "atom symbol to which element is bonded to. X means non-bonded or bonded to any atom other than the ones in the list", + "type": "string", + "enum": [ + "H", + "O", + "S", + "F", + "Cl", + "X" + ] + } + } +} diff --git a/schema/material/fingerprint/primary/_norm.json b/schema/material/fingerprint/primary/_norm.json new file mode 100644 index 000000000..fe6f9f51a --- /dev/null +++ b/schema/material/fingerprint/primary/_norm.json @@ -0,0 +1,14 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "L-p norm schema", + "description": "calculated L-p norm of each compound in p-dimensional space", + "properties": { + "name": { + "description": "dimension. Eg: p3", + "type": "string" + }, + "value": { + "type": "number" + } + } +} diff --git a/schema/material/fingerprint/primary/_primary.json b/schema/material/fingerprint/primary/_primary.json new file mode 100644 index 000000000..7d7f04aff --- /dev/null +++ b/schema/material/fingerprint/primary/_primary.json @@ -0,0 +1,32 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "primary descriptor category schema", + "description": "type/subtype each primary descriptor belongs to", + "properties": { + "type": { + "type": "string", + "enum": [ + "element-specific", + "compound-specific" + ] + }, + "subtype": { + "type": "string", + "enum": [ + "chemical", + "stoichiometric", + "structural", + "electronic" + ] + }, + "variableType": { + "description": "type of descriptor, whether it is a number or category", + "type": "string", + "enum": [ + "numeric", + "nominal", + "ordinal" + ] + } + } +} diff --git a/schema/material/fingerprint/primary/_spin_states.json b/schema/material/fingerprint/primary/_spin_states.json new file mode 100644 index 000000000..4cb6691dc --- /dev/null +++ b/schema/material/fingerprint/primary/_spin_states.json @@ -0,0 +1,20 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "element spin state schema", + "description": "spin state of each element in the material", + "properties": { + "name": { + "description": "element symbol. Eg: Si", + "type": "string" + }, + "value": { + "description": "high and low spin states correspond to states with max number of unpaired electrons with same spin and maximum number of paired spins respectively.", + "type": "string", + "enum": [ + "high", + "intermediate", + "low" + ] + } + } +} diff --git a/schema/material/fingerprint/primary/_valence.json b/schema/material/fingerprint/primary/_valence.json index f97b3b658..2ff73ed1f 100644 --- a/schema/material/fingerprint/primary/_valence.json +++ b/schema/material/fingerprint/primary/_valence.json @@ -1,18 +1,19 @@ { "$schema": "http://json-schema.org/draft-04/schema#", "title": "valence orbital occupancy electronic descriptor schema", - "description": "s,p,d,f orbital contributions to valence for individual element", + "description": "s,p,d,f orbital contributions to valence", "properties": { - "s":{ - "type" : "number" + "name": { + "description": "orbital name", + "type": "string", + "enum": [ + "s", + "p", + "d", + "f" + ] }, - "p": { - "type": "number" - }, - "d": { - "type": "number" - }, - "f": { + "value": { "type": "number" } } diff --git a/schema/material/fingerprint/primary/chemical.json b/schema/material/fingerprint/primary/chemical.json deleted file mode 100644 index e1f8aa927..000000000 --- a/schema/material/fingerprint/primary/chemical.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "chemical descriptors schema", - "properties": { - "coordinationNumber": { - "description": "coordination numbers of all elements", - "items": { - "type": "number" - } - }, - "localEnvironment": { - "description": "Represents the atom type each element is bonded to. X means an element is either non-bonded or bonded to any atom other than the atoms in the list", - "type": "array", - "items": { - "type" : "string", - "enum": [ - "H", - "O", - "S", - "F", - "Cl", - "X" - ] - } - } - } -} diff --git a/schema/material/fingerprint/primary/electronic.json b/schema/material/fingerprint/primary/electronic.json deleted file mode 100644 index 69e6bc59c..000000000 --- a/schema/material/fingerprint/primary/electronic.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "electronic descriptors schema", - "properties": { - "elementSpinState": { - "description": "Spin state of each element. Spin state depends on oxidation state and electronic configuration. ", - "type": "array", - "items": { - "description": "high and low spin states correspond to states with max number of unpaired electrons with same spin and maximum number of paired spins respectively.", - "type": "string", - "enum":[ - "high", - "intermediate", - "low" - ] - } - }, - "valenceOrbitalOccupancy": { - "description": "valence orbital occupation - contribution from s, p, d, and f to valence - depends on electronic configuration. Ref:https://www.nature.com/articles/npjcompumats201628#s1", - "type": "array", - "items": { - "description": "array of s,p,d,f contributions for individual element ", - "$ref": "file:_valence.json" - } - } - } -} diff --git a/schema/material/fingerprint/primary/element_spin_state.json b/schema/material/fingerprint/primary/element_spin_state.json new file mode 100644 index 000000000..67e9522d6 --- /dev/null +++ b/schema/material/fingerprint/primary/element_spin_state.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "electronic descriptor schema", + "description": "spin state of each element", + "allOf": [ + { + "$ref": "file:_primary.json" + } + ], + "properties": { + "elements": { + "description": "unique elements in a material and corresponding spin states", + "type": "array", + "items": { + "$ref": "file:_spin_states.json" + } + } + } +} diff --git a/schema/material/fingerprint/primary/elemental_composition.json b/schema/material/fingerprint/primary/elemental_composition.json new file mode 100644 index 000000000..769a88751 --- /dev/null +++ b/schema/material/fingerprint/primary/elemental_composition.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "stocihiometric descriptor, elemental composition schema", + "description": "composition of each element in the material", + "allOf": [ + { + "$ref": "file:_primary.json" + } + ], + "properties": { + "elements": { + "description": "elements in a material and corresponding composition", + "type": "array", + "items": { + "$ref": "file:_composition.json" + } + } + } +} diff --git a/schema/material/fingerprint/primary/local_environment.json b/schema/material/fingerprint/primary/local_environment.json new file mode 100644 index 000000000..a2be24e32 --- /dev/null +++ b/schema/material/fingerprint/primary/local_environment.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "local environment chemical descriptor schema", + "description": "local environment around each element defined by atom type each element is bonded to", + "allOf": [ + { + "$ref": "file:_primary.json" + } + ], + "properties": { + "elements": { + "description": "unique elements in a material and corresponding local environment", + "type": "array", + "items": { + "$ref": "file:_local_environment.json" + } + } + } +} diff --git a/schema/material/fingerprint/primary/p_norm.json b/schema/material/fingerprint/primary/p_norm.json new file mode 100644 index 000000000..2c9e24466 --- /dev/null +++ b/schema/material/fingerprint/primary/p_norm.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "stoichiometric descriptor - pNorm schema", + "description": "values calculated using L-p norm upto p-dimensions", + "allOf": [ + { + "$ref": "file:_primary.json" + } + ], + "properties": { + "dimensions": { + "description": "dimensional spaces in which p-norm is calculated", + "type": "array", + "items": { + "$ref": "file:_norm.json" + } + } + } +} diff --git a/schema/material/fingerprint/primary/stoichiometric.json b/schema/material/fingerprint/primary/stoichiometric.json deleted file mode 100644 index 17b9b7a44..000000000 --- a/schema/material/fingerprint/primary/stoichiometric.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "stoichiometric descriptors schema", - "properties": { - "pNorm": { - "description": "array of values calculated using L-p norm upto p-dimensions", - "type": "object" - } - } -} diff --git a/schema/material/fingerprint/primary/structural.json b/schema/material/fingerprint/primary/structural.json deleted file mode 100644 index e59f16ad5..000000000 --- a/schema/material/fingerprint/primary/structural.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "structural descriptors schema", - "properties": { - "representation": { - "description": "structure representation.", - "type": "string", - "enum": [ - "primitive", - "conventional", - "supercell" - ] - }, - "equilibrium": { - "description": "Identifies a equilibrium structure.", - "type": "string", - "enum": [ - "Yes", - "No" - ] - }, - "materialType": { - "description": "Material type.", - "type": "string", - "enum": [ - "crystal", - "amorphous", - "polymer", - "molecule" - ] - }, - "averageAtomVolume": { - "description": "Averaged volume per atom. Units: 1/Ang**3", - "type": "number" - } - } -} diff --git a/schema/material/fingerprint/primary/valence_orbital_occupancy.json b/schema/material/fingerprint/primary/valence_orbital_occupancy.json new file mode 100644 index 000000000..9db2dc489 --- /dev/null +++ b/schema/material/fingerprint/primary/valence_orbital_occupancy.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "electronic descriptor - valence orbital occupancy schema", + "description": "fraction-weighted average of the number of valance electrons in each orbital divided by total valence electrons", + "allOf": [ + { + "$ref": "file:_primary.json" + } + ], + "properties": { + "orbitals": { + "description": "https://www.nature.com/article-assets/npg/npjcompumats/2016/npjcompumats201628/extref/npjcompumats201628-s1.pdf", + "type": "array", + "items": { + "$ref": "file:_valence.json" + } + } + } +} diff --git a/schema/material/structure/atomic_data.json b/schema/material/structure/atomic_data.json deleted file mode 100644 index 4273721aa..000000000 --- a/schema/material/structure/atomic_data.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "atomic properties", - "description": "properties of atoms in arrays indexed by ids", - "type": "object", - "properties": { - "valenceElectrons": { - "description": "number of valence electrons", - "properties": { - "value": { - "$ref": "file:atomic_masses.json" - }, - "name": { - "enum": [ - "valence_electrons" - ] - } - } - }, - "charges": { - "description": "difference between total and valence electrons on atom", - "properties": { - "value": { - "$ref": "file:atomic_masses.json" - }, - "name": { - "enum": [ - "charges" - ] - }, - "units": { - "enum": [ - "electron charge" - ] - } - } - }, - "radicals": { - "description": "number of unpaired electrons", - "properties": { - "value": { - "$ref": "file:atomic_masses.json" - }, - "name": { - "enum": [ - "radicals" - ] - } - } - }, - "forces": { - "description": "forces on atoms", - "properties": { - "value": { - "$ref": "file:atomic_coordinates.json" - }, - "name": { - "enum": [ - "atomic_forces" - ] - }, - "units": { - "enum": [ - "eV/a.u." - ] - } - } - } - } -} diff --git a/schema/material/structure/atomic_elements.json b/schema/material/structure/atomic_elements.json index e21e4c2e7..92a6d723f 100644 --- a/schema/material/structure/atomic_elements.json +++ b/schema/material/structure/atomic_elements.json @@ -19,6 +19,52 @@ "oxidationState": { "description": "oxidation state of the element", "type": "integer" + }, + "ionicRadius": { + "description": "ionic radius of the element. depends on oxidation state. https://en.wikipedia.org/wiki/Ionic_radius", + "properties": { + "value": { + "type": "number" + }, + "units": { + "enum": [ + "pm", + "nm", + "a.u." + ] + } + } + }, + "charge": { + "description": "difference between total and valence electrons on atom", + "properties": { + "value": { + "description": "atomic charge", + "type": "number" + }, + "units": { + "enum": [ + "electrons" + ] + } + } + }, + "coordinationNumber": { + "description": "number of nearest neighbors", + "type": "number" + }, + "forces": { + "description": "forces on atoms", + "properties": { + "value": { + "$ref": "file:../../primitive/point.json" + }, + "units": { + "enum": [ + "eV/a.u." + ] + } + } } } } diff --git a/schema/material/structure/atomic_masses.json b/schema/material/structure/atomic_masses.json deleted file mode 100644 index fd5c2a5cb..000000000 --- a/schema/material/structure/atomic_masses.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "atomic masses", - "description": "masses of atoms by ids, scalar, unitless", - "allOf": [ - { - "$ref": "file:../../primitive/_array_of_ids.json" - } - ], - "properties": { - "value": { - "description": "atomic masses", - "type": "number" - } - } -} diff --git a/schema/material/structure/elements.json b/schema/material/structure/elements.json new file mode 100644 index 000000000..d4222398f --- /dev/null +++ b/schema/material/structure/elements.json @@ -0,0 +1,162 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Unique elements and elemental properties", + "description": "element symbols by string, unitless", + "properties": { + "element": { + "description": "element symbols (eg Si, Ge)", + "type": "string" + }, + "valenceElectrons": { + "description": "number of valence electrons", + "properties": { + "value": { + "type": "integer" + }, + "name": { + "enum": [ + "valence_electrons" + ] + } + } + }, + "radicals": { + "description": "number of unpaired electrons", + "properties": { + "value": { + "type": "integer" + }, + "name": { + "enum": [ + "radicals" + ] + } + } + }, + "atomicRadius": { + "description": "atomic radius. https://en.wikipedia.org/wiki/Atomic_radius#cite_note-slater64-8", + "properties": { + "name": { + "enum": [ + "atomic_radius" + ] + }, + "value": { + "description": "atomic radius", + "type": "number" + }, + "units": { + "enum": [ + "pm", + "nm", + "a.u." + ] + } + } + }, + "electronicConfiguration": { + "description": "electronic configuration. [Ne]3s1", + "properties": { + "value": { + "type": "string" + }, + "name": { + "enum": [ + "electronic_configuration" + ] + } + } + }, + "atomicMass": { + "description": "atomic mass in a.u", + "properties": { + "name": { + "enum": [ + "atomic_mass" + ] + }, + "value": { + "description": "atomic masses", + "type": "number" + }, + "units": { + "enum": [ + "a.u." + ] + } + } + }, + "paulingNegativity": { + "description": "electro negativity of an atom. Unitless. https://www.nist.gov/pml/productsservices/physical-reference-data", + "properties": { + "value": { + "type": "number" + }, + "name": { + "enum": [ + "electronegativity" + ] + }, + "units": { + "enum": [ + "pauling" + ] + } + } + }, + "firstIonizationPotential": { + "description": "Ionization energy from 0 to +1 oxidation state", + "properties": { + "name": { + "enum": [ + "first_ionization_potential" + ] + }, + "value": { + "type": "number" + }, + "units": { + "enum": [ + "eV" + ] + } + } + }, + "density": { + "description": "density of elemental crystal", + "properties": { + "name": { + "enum": [ + "density" + ] + }, + "value": { + "type": "number" + }, + "units": { + "enum": [ + "g/cm^3" + ] + } + } + }, + "cohesiveEnergy": { + "description": "cohesive energy of elemental crystal per atom", + "properties": { + "name": { + "enum": [ + "cohesive_energy" + ] + }, + "value": { + "type": "number" + }, + "units": { + "enum": [ + "eV/atom" + ] + } + } + } + } +} From 425e471fb2c150b5a946a343d178ffd05cf49e93 Mon Sep 17 00:00:00 2001 From: Phani Date: Sat, 13 May 2017 00:07:25 -0700 Subject: [PATCH 42/63] cleanup and refactoring --- example/material/fingerprint/primary.json | 79 +++++-- ...tal_occupancy.json => _compound_data.json} | 5 +- ...al_environment.json => _element_data.json} | 3 - .../fingerprint/primary/_primary.json | 4 +- .../primary/compound_specific.json | 4 + .../primary/compound_specific_array.json | 6 + .../fingerprint/primary/element_specific.json | 6 + .../primary/element_spin_state.json | 15 -- .../primary/elemental_composition.json | 15 -- .../material/fingerprint/primary/p_norm.json | 23 -- example/material/structure/atomic_data.json | 52 +++++ .../material/structure/atomic_elements.json | 42 +--- example/material/structure/atomic_masses.json | 10 + example/material/structure/elements.json | 44 +--- schema/material/fingerprint/primary.json | 79 ++----- .../fingerprint/primary/_composition.json | 14 -- .../fingerprint/primary/_compound_data.json | 29 +++ .../fingerprint/primary/_element_data.json | 40 ++++ .../primary/_local_environment.json | 23 -- .../material/fingerprint/primary/_norm.json | 14 -- .../fingerprint/primary/_primary.json | 18 +- .../fingerprint/primary/_spin_states.json | 20 -- .../fingerprint/primary/_valence.json | 20 -- .../primary/compound_specific.json | 51 +++++ .../primary/compound_specific_array.json | 19 ++ ...composition.json => element_specific.json} | 8 +- .../primary/element_spin_state.json | 19 -- .../primary/local_environment.json | 19 -- .../material/fingerprint/primary/p_norm.json | 19 -- .../primary/valence_orbital_occupancy.json | 19 -- schema/material/structure/atomic_data.json | 201 ++++++++++++++++++ .../material/structure/atomic_elements.json | 54 ----- schema/material/structure/atomic_masses.json | 16 ++ schema/material/structure/elements.json | 160 +------------- 34 files changed, 533 insertions(+), 617 deletions(-) rename example/material/fingerprint/primary/{valence_orbital_occupancy.json => _compound_data.json} (72%) rename example/material/fingerprint/primary/{local_environment.json => _element_data.json} (65%) create mode 100644 example/material/fingerprint/primary/compound_specific.json create mode 100644 example/material/fingerprint/primary/compound_specific_array.json create mode 100644 example/material/fingerprint/primary/element_specific.json delete mode 100644 example/material/fingerprint/primary/element_spin_state.json delete mode 100644 example/material/fingerprint/primary/elemental_composition.json delete mode 100644 example/material/fingerprint/primary/p_norm.json create mode 100644 example/material/structure/atomic_data.json create mode 100644 example/material/structure/atomic_masses.json delete mode 100644 schema/material/fingerprint/primary/_composition.json create mode 100644 schema/material/fingerprint/primary/_compound_data.json create mode 100644 schema/material/fingerprint/primary/_element_data.json delete mode 100644 schema/material/fingerprint/primary/_local_environment.json delete mode 100644 schema/material/fingerprint/primary/_norm.json delete mode 100644 schema/material/fingerprint/primary/_spin_states.json delete mode 100644 schema/material/fingerprint/primary/_valence.json create mode 100644 schema/material/fingerprint/primary/compound_specific.json create mode 100644 schema/material/fingerprint/primary/compound_specific_array.json rename schema/material/fingerprint/primary/{elemental_composition.json => element_specific.json} (61%) delete mode 100644 schema/material/fingerprint/primary/element_spin_state.json delete mode 100644 schema/material/fingerprint/primary/local_environment.json delete mode 100644 schema/material/fingerprint/primary/p_norm.json delete mode 100644 schema/material/fingerprint/primary/valence_orbital_occupancy.json create mode 100644 schema/material/structure/atomic_data.json create mode 100644 schema/material/structure/atomic_masses.json diff --git a/example/material/fingerprint/primary.json b/example/material/fingerprint/primary.json index dc6d7b58d..3314f833e 100644 --- a/example/material/fingerprint/primary.json +++ b/example/material/fingerprint/primary.json @@ -1,35 +1,84 @@ { "localEnvironment": { - "...": "include(primary/local_environment.json)" + "...": "include(primary/element_specific.json)" }, - "elementSpinState": { - "...": "include(primary/element_spin_state.json)" + "representation": { + "description": "structure representation.", + "$ref": "file:primary/compound_specific.json" }, "valenceOrbitalOccupancy": { - "...": "include(primary/valence_orbital_occupancy.json)" + "description": "s, p, d, and f orbital contribution to total valence electrons in the material ", + "$ref": "file:primary/compound_specific_array.json" + }, + "elementSpinState": { + "type": "element-specific", + "subtype": "nominal", + "category": "electronic", + "elements": [ + { + "name": "Si", + "value": "high" + }, + { + "name": "O", + "value": "low" + } + ] }, "pNorm": { - "...": "include(primary/p_norm.json)" + "type": "compound-specific", + "subtype": "numeric", + "category": "stoichiometric", + "data": [ + { + "name": "p03", + "value": 0.693 + }, + { + "name": "p05", + "value": 0.671 + }, + { + "name": "p07", + "value": 0.667 + }, + { + "name": "p09", + "value": 0.667 + } + ] }, "elementalComposition": { - "...": "include(primary/elemental_composition.json)" - }, - "representation": { - "...": "include(primary/_primary.json)", - "value": "supercell" + "type": "element-specific", + "subtype": "numeric", + "category": "stoichiometric", + "elements": [ + { + "name": "Si", + "value": 0.33 + }, + { + "name": "O", + "value": 0.66 + } + ] }, "equilibrium": { - "...": "include(primary/_primary.json)", + "type": "compound-specific", + "subtype": "nominal", + "category": "structural", "value": "No" }, "materialType": { - "...": "include(primary/_primary.json)", + "type": "compound-specific", + "subtype": "nominal", + "category": "structural", "value": "crystal" }, - "averageAtomVolume": { + "avgAtomVolume": { "type": "compound-specific", - "subtype": "structural", - "variableType": "numeric", + "subtype": "numeric", + "category": "structural", "value": 0.039, "units": "1/Ang^3" } diff --git a/example/material/fingerprint/primary/valence_orbital_occupancy.json b/example/material/fingerprint/primary/_compound_data.json similarity index 72% rename from example/material/fingerprint/primary/valence_orbital_occupancy.json rename to example/material/fingerprint/primary/_compound_data.json index d995f4cfb..dc9cb1614 100644 --- a/example/material/fingerprint/primary/valence_orbital_occupancy.json +++ b/example/material/fingerprint/primary/_compound_data.json @@ -1,8 +1,5 @@ { - "type": "compound-specific", - "subtype": "electronic", - "variableType": "numeric", - "orbitals": [ + "data": [ { "name": "s", "value": 0.325 diff --git a/example/material/fingerprint/primary/local_environment.json b/example/material/fingerprint/primary/_element_data.json similarity index 65% rename from example/material/fingerprint/primary/local_environment.json rename to example/material/fingerprint/primary/_element_data.json index 8d9f60ec0..12fa8b3b1 100644 --- a/example/material/fingerprint/primary/local_environment.json +++ b/example/material/fingerprint/primary/_element_data.json @@ -1,7 +1,4 @@ { - "type": "element-specific", - "subtype": "chemical", - "variableType": "nominal", "elements": [ { "name": "Si", diff --git a/example/material/fingerprint/primary/_primary.json b/example/material/fingerprint/primary/_primary.json index 9bf136f0a..09a87436c 100644 --- a/example/material/fingerprint/primary/_primary.json +++ b/example/material/fingerprint/primary/_primary.json @@ -1,5 +1,5 @@ { "type": "compound-specific", - "subtype": "structural", - "variableType": "nominal" + "subtype": "nominal", + "category": "structural" } diff --git a/example/material/fingerprint/primary/compound_specific.json b/example/material/fingerprint/primary/compound_specific.json new file mode 100644 index 000000000..e32094822 --- /dev/null +++ b/example/material/fingerprint/primary/compound_specific.json @@ -0,0 +1,4 @@ +{ + "...": "include(_primary.json)", + "value": "supercell" +} diff --git a/example/material/fingerprint/primary/compound_specific_array.json b/example/material/fingerprint/primary/compound_specific_array.json new file mode 100644 index 000000000..1f9833a1b --- /dev/null +++ b/example/material/fingerprint/primary/compound_specific_array.json @@ -0,0 +1,6 @@ +{ + "type": "compound-specific", + "subtype": "numeric", + "category": "electronic", + "...": "include(_compound_data.json)" +} diff --git a/example/material/fingerprint/primary/element_specific.json b/example/material/fingerprint/primary/element_specific.json new file mode 100644 index 000000000..d371ad1ba --- /dev/null +++ b/example/material/fingerprint/primary/element_specific.json @@ -0,0 +1,6 @@ +{ + "type": "element-specific", + "subtype": "nominal", + "category": "chemical", + "...": "include(_element_data.json)" +} diff --git a/example/material/fingerprint/primary/element_spin_state.json b/example/material/fingerprint/primary/element_spin_state.json deleted file mode 100644 index ef283cd99..000000000 --- a/example/material/fingerprint/primary/element_spin_state.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "element-specific", - "subtype": "electronic", - "variableType": "nominal", - "elements": [ - { - "name": "Si", - "value": "high" - }, - { - "name": "O", - "value": "low" - } - ] -} diff --git a/example/material/fingerprint/primary/elemental_composition.json b/example/material/fingerprint/primary/elemental_composition.json deleted file mode 100644 index 04a7ac58b..000000000 --- a/example/material/fingerprint/primary/elemental_composition.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "compound-specific", - "subtype": "stoichiometric", - "variableType": "numeric", - "elements": [ - { - "name": "Si", - "value": 0.33 - }, - { - "name": "O", - "value": 0.66 - } - ] -} diff --git a/example/material/fingerprint/primary/p_norm.json b/example/material/fingerprint/primary/p_norm.json deleted file mode 100644 index b21a13744..000000000 --- a/example/material/fingerprint/primary/p_norm.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "compound-specific", - "subtype": "stoichiometric", - "variableType": "numeric", - "dimensions": [ - { - "name": "p3", - "value": 0.693 - }, - { - "name": "p5", - "value": 0.671 - }, - { - "name": "p7", - "value": 0.667 - }, - { - "name": "p9", - "value": 0.667 - } - ] -} diff --git a/example/material/structure/atomic_data.json b/example/material/structure/atomic_data.json new file mode 100644 index 000000000..a917f223a --- /dev/null +++ b/example/material/structure/atomic_data.json @@ -0,0 +1,52 @@ +{ + "name": "atomic_data", + "valenceElectrons": { + "value": [ + { + "id": 1, + "value": 4 + }, + { + "id": 2, + "value": 4 + } + ], + "name": "valence_electrons" + }, + "charges": { + "value": [ + { + "id": 1, + "value": 0.5 + }, + { + "id": 2, + "value": -0.5 + } + ], + "name": "charges", + "units": "electron charge" + }, + "forces": { + "value": [ + { + "id": 1, + "value": [ + -0.00456789, + 0.001000011, + -0.00100001 + ] + }, + { + "id": 2, + "value": [ + 0.004567891, + -0.00100001, + 0.001000011 + ] + } + ], + "name": "atomic_forces", + "units": "eV/a.u." + } +} diff --git a/example/material/structure/atomic_elements.json b/example/material/structure/atomic_elements.json index 2ac9359c0..5b269ab2d 100644 --- a/example/material/structure/atomic_elements.json +++ b/example/material/structure/atomic_elements.json @@ -1,48 +1,10 @@ [ { "id": 1, - "value": "Si", - "occurrence": 1.0, - "oxidationState": 0, - "ionicRadius": { - "value": 1.11, - "units": "pm" - }, - "charge": { - "value": 0.0, - "units": "electrons" - }, - "coordinationNumber": 12, - "forces": { - "value": [ - -0.00456789, - 0.001000011, - -0.00100001 - ], - "units": "eV/a.u." - } + "value": "Si" }, { "id": 2, - "value": "Si", - "occurrence": 1.0, - "oxidationState": 0, - "ionicRadius": { - "value": 1.11, - "units": "nm" - }, - "charge": { - "value": 0.0, - "units": "electrons" - }, - "coordinationNumber": 12, - "forces": { - "value": [ - -0.00456789, - 0.001000011, - -0.00100001 - ], - "units": "eV/a.u." - } + "value": "Si" } ] diff --git a/example/material/structure/atomic_masses.json b/example/material/structure/atomic_masses.json new file mode 100644 index 000000000..24ade9885 --- /dev/null +++ b/example/material/structure/atomic_masses.json @@ -0,0 +1,10 @@ +[ + { + "id": 1, + "value": 28 + }, + { + "id": 2, + "value": 28 + } +] diff --git a/example/material/structure/elements.json b/example/material/structure/elements.json index edc329dfe..0f5cb074e 100644 --- a/example/material/structure/elements.json +++ b/example/material/structure/elements.json @@ -1,45 +1,3 @@ { - "element": "Si", - "valenceElectrons": { - "value": 6, - "name": "valence_electrons" - }, - "radicals": { - "value": 2, - "name": "radicals" - }, - "atomicRadius": { - "name": "atomic_radius", - "value": 1.11, - "units": "nm" - }, - "electronicConfiguration": { - "name": "electronic_configuration", - "value": "[Ne]3s23p2" - }, - "atomicMass": { - "name": "atomic_mass", - "value": 28.0855, - "units": "a.u." - }, - "paulingNegativity": { - "name": "electronegativity", - "value": 1.90, - "units": "pauling" - }, - "firstIonizationPotential": { - "name": "first_ionization_potential", - "value": 8.1517, - "units": "eV" - }, - "density": { - "name": "density", - "value": 2.33, - "units": "g/cm^3" - }, - "cohesiveEnergy": { - "name": "cohesive_energy", - "value": 4.63, - "units": "eV/atom" - } + "...": "include(atomic_data.json)" } diff --git a/schema/material/fingerprint/primary.json b/schema/material/fingerprint/primary.json index d0379a52e..c89a42818 100644 --- a/schema/material/fingerprint/primary.json +++ b/schema/material/fingerprint/primary.json @@ -5,94 +5,39 @@ "properties": { "localEnvironment": { "description": "atom type each element is bonded to", - "$ref": "file:primary/local_environment.json" + "$ref": "file:primary/element_specific.json" }, "elementSpinState": { "description": "Spin state of each element. Spin state depends on oxidation state and electronic configuration. ", - "$ref": "file:primary/element_spin_state.json" + "$ref": "file:primary/element_specific.json" }, "valenceOrbitalOccupancy": { "description": "contribution from s, p, d, and f of unique elements to total valence electrons in the material ", - "$ref": "file:primary/valence_orbital_occupancy.json" + "$ref": "file:primary/compound_specific_array.json" }, "pNorm": { "description": "values calculated using L-p norm upto p-dimensions", - "$ref": "file:primary/p_norm.json" + "$ref": "file:primary/compound_specific_array.json" }, "elementalComposition": { "description": "elemental composition of the compound", - "$ref": "file:primary/elemental_composition.json" + "$ref": "file:primary/element_specific.json" }, "representation": { "description": "structure representation.", - "allOf": [ - { - "$ref": "file:primary/_primary.json" - } - ], - "properties": { - "value": { - "type": "string", - "enum": [ - "primitive", - "conventional", - "supercell" - ] - } - } + "$ref": "file:primary/compound_specific.json" }, "equilibrium": { "description": "Identifies a equilibrium structure.", - "allOf": [ - { - "$ref": "file:primary/_primary.json" - } - ], - "properties": { - "value": { - "type": "string", - "enum": [ - "Yes", - "No" - ] - } - } + "$ref": "file:primary/compound_specific.json" }, "materialType": { - "description": "Material type.", - "allOf": [ - { - "$ref": "file:primary/_primary.json" - } - ], - "properties": { - "value": { - "type": "string", - "enum": [ - "crystal", - "amorphous", - "polymer", - "molecule" - ] - } - } + "description": "structure representation.", + "$ref": "file:primary/compound_specific.json" }, - "averageAtomVolume": { - "allOf": [ - { - "$ref": "file:primary/_primary.json" - } - ], - "description": "Averaged volume per atom.", - "properties": { - "value": { - "type": "number" - }, - "units": { - "description": "Example: 1/Ang^3", - "type": "string" - } - } + "avgAtomVolume": { + "description": "structure representation.", + "$ref": "file:primary/compound_specific.json" } } } diff --git a/schema/material/fingerprint/primary/_composition.json b/schema/material/fingerprint/primary/_composition.json deleted file mode 100644 index 509b7fdbc..000000000 --- a/schema/material/fingerprint/primary/_composition.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "elemental composition schema", - "description": "calculated composition of each element in a material", - "properties": { - "name": { - "description": "element symbol. Eg: Si", - "type": "string" - }, - "value": { - "type": "number" - } - } -} diff --git a/schema/material/fingerprint/primary/_compound_data.json b/schema/material/fingerprint/primary/_compound_data.json new file mode 100644 index 000000000..5d24a4f8b --- /dev/null +++ b/schema/material/fingerprint/primary/_compound_data.json @@ -0,0 +1,29 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "compound-specific descriptor array elements schema", + "description": "for p-norms and valence_orbital occupancy", + "properties": { + "name": { + "oneOf": [ + { + "description": "p-norms. Upto p99 allowed. Eg: p3", + "type": "string", + "pattern": "p[0-9]{2}" + }, + { + "description": "valence orbital occupancy - https://www.nature.com/article-assets/npg/npjcompumats/2016/npjcompumats201628/extref/npjcompumats201628-s1.pdf", + "type": "string", + "enum": [ + "s", + "p", + "d", + "f" + ] + } + ] + }, + "value": { + "type": "number" + } + } +} diff --git a/schema/material/fingerprint/primary/_element_data.json b/schema/material/fingerprint/primary/_element_data.json new file mode 100644 index 000000000..a83135815 --- /dev/null +++ b/schema/material/fingerprint/primary/_element_data.json @@ -0,0 +1,40 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "element-specific descriptors data schema", + "description": "element symbol and corresponding values.", + "properties": { + "name": { + "description": "element symbol. Eg: Si", + "type": "string" + }, + "value": { + "oneOf": [ + { + "description": "elemental composition", + "type": "number" + }, + { + "description": "element_spin_states. high and low spin states correspond to states with max number of unpaired electrons with same spin and maximum number of paired spins respectively.", + "type": "string", + "enum": [ + "high", + "intermediate", + "low" + ] + }, + { + "description": "local environemnt. atom symbol to which element is bonded to. X means non-bonded or bonded to any atom other than the ones in the list", + "type": "string", + "enum": [ + "H", + "O", + "S", + "F", + "Cl", + "X" + ] + } + ] + } + } +} diff --git a/schema/material/fingerprint/primary/_local_environment.json b/schema/material/fingerprint/primary/_local_environment.json deleted file mode 100644 index 896fc986e..000000000 --- a/schema/material/fingerprint/primary/_local_environment.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "local environment around an atom schema", - "description": "local environment around each element defined by atom type each element is bonded to", - "properties": { - "name": { - "description": "element symbol. Eg: Si", - "type": "string" - }, - "value": { - "description": "atom symbol to which element is bonded to. X means non-bonded or bonded to any atom other than the ones in the list", - "type": "string", - "enum": [ - "H", - "O", - "S", - "F", - "Cl", - "X" - ] - } - } -} diff --git a/schema/material/fingerprint/primary/_norm.json b/schema/material/fingerprint/primary/_norm.json deleted file mode 100644 index fe6f9f51a..000000000 --- a/schema/material/fingerprint/primary/_norm.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "L-p norm schema", - "description": "calculated L-p norm of each compound in p-dimensional space", - "properties": { - "name": { - "description": "dimension. Eg: p3", - "type": "string" - }, - "value": { - "type": "number" - } - } -} diff --git a/schema/material/fingerprint/primary/_primary.json b/schema/material/fingerprint/primary/_primary.json index 7d7f04aff..90f01b817 100644 --- a/schema/material/fingerprint/primary/_primary.json +++ b/schema/material/fingerprint/primary/_primary.json @@ -11,15 +11,6 @@ ] }, "subtype": { - "type": "string", - "enum": [ - "chemical", - "stoichiometric", - "structural", - "electronic" - ] - }, - "variableType": { "description": "type of descriptor, whether it is a number or category", "type": "string", "enum": [ @@ -27,6 +18,15 @@ "nominal", "ordinal" ] + }, + "category": { + "type": "string", + "enum": [ + "chemical", + "stoichiometric", + "structural", + "electronic" + ] } } } diff --git a/schema/material/fingerprint/primary/_spin_states.json b/schema/material/fingerprint/primary/_spin_states.json deleted file mode 100644 index 4cb6691dc..000000000 --- a/schema/material/fingerprint/primary/_spin_states.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "element spin state schema", - "description": "spin state of each element in the material", - "properties": { - "name": { - "description": "element symbol. Eg: Si", - "type": "string" - }, - "value": { - "description": "high and low spin states correspond to states with max number of unpaired electrons with same spin and maximum number of paired spins respectively.", - "type": "string", - "enum": [ - "high", - "intermediate", - "low" - ] - } - } -} diff --git a/schema/material/fingerprint/primary/_valence.json b/schema/material/fingerprint/primary/_valence.json deleted file mode 100644 index 2ff73ed1f..000000000 --- a/schema/material/fingerprint/primary/_valence.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "valence orbital occupancy electronic descriptor schema", - "description": "s,p,d,f orbital contributions to valence", - "properties": { - "name": { - "description": "orbital name", - "type": "string", - "enum": [ - "s", - "p", - "d", - "f" - ] - }, - "value": { - "type": "number" - } - } -} diff --git a/schema/material/fingerprint/primary/compound_specific.json b/schema/material/fingerprint/primary/compound_specific.json new file mode 100644 index 000000000..e7aed4559 --- /dev/null +++ b/schema/material/fingerprint/primary/compound_specific.json @@ -0,0 +1,51 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "compound specific descriptors schema", + "description": "applicable for nominal/ordinal/numeric value types", + "allOf": [ + { + "$ref": "file:_primary.json" + } + ], + "properties": { + "value": { + "oneOf": [ + { + "description": "cell representation", + "type": "string", + "enum": [ + "primitive", + "supercell", + "conventional" + ] + }, + { + "description": "material type", + "type": "string", + "enum": [ + "crystal", + "polymer", + "molecule", + "amorphous" + ] + }, + { + "description": "Identifies equilibrium structure", + "type": "string", + "enum": [ + "Yes", + "No" + ] + }, + { + "description": "average volume per atom", + "type": "number" + } + ] + }, + "units": { + "description": "Example: 1/Ang^3", + "type": "string" + } + } +} diff --git a/schema/material/fingerprint/primary/compound_specific_array.json b/schema/material/fingerprint/primary/compound_specific_array.json new file mode 100644 index 000000000..b8fd5b47d --- /dev/null +++ b/schema/material/fingerprint/primary/compound_specific_array.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "compound-specific descriptor array schema", + "description": "multiple elements related to compound-specific descriptor. Example: p-norms", + "allOf": [ + { + "$ref": "file:_primary.json" + } + ], + "properties": { + "data": { + "description": "compound-specific descriptor data in an array", + "type": "array", + "items": { + "$ref": "file:_compound_data.json" + } + } + } +} diff --git a/schema/material/fingerprint/primary/elemental_composition.json b/schema/material/fingerprint/primary/element_specific.json similarity index 61% rename from schema/material/fingerprint/primary/elemental_composition.json rename to schema/material/fingerprint/primary/element_specific.json index 769a88751..af46341de 100644 --- a/schema/material/fingerprint/primary/elemental_composition.json +++ b/schema/material/fingerprint/primary/element_specific.json @@ -1,7 +1,7 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "stocihiometric descriptor, elemental composition schema", - "description": "composition of each element in the material", + "title": "element specific descriptors schema", + "description": "applicable for nominal/ordinal/numeric value types", "allOf": [ { "$ref": "file:_primary.json" @@ -9,10 +9,10 @@ ], "properties": { "elements": { - "description": "elements in a material and corresponding composition", + "description": "elements in a material and corresponding descriptor data", "type": "array", "items": { - "$ref": "file:_composition.json" + "$ref": "file:_element_data.json" } } } diff --git a/schema/material/fingerprint/primary/element_spin_state.json b/schema/material/fingerprint/primary/element_spin_state.json deleted file mode 100644 index 67e9522d6..000000000 --- a/schema/material/fingerprint/primary/element_spin_state.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "electronic descriptor schema", - "description": "spin state of each element", - "allOf": [ - { - "$ref": "file:_primary.json" - } - ], - "properties": { - "elements": { - "description": "unique elements in a material and corresponding spin states", - "type": "array", - "items": { - "$ref": "file:_spin_states.json" - } - } - } -} diff --git a/schema/material/fingerprint/primary/local_environment.json b/schema/material/fingerprint/primary/local_environment.json deleted file mode 100644 index a2be24e32..000000000 --- a/schema/material/fingerprint/primary/local_environment.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "local environment chemical descriptor schema", - "description": "local environment around each element defined by atom type each element is bonded to", - "allOf": [ - { - "$ref": "file:_primary.json" - } - ], - "properties": { - "elements": { - "description": "unique elements in a material and corresponding local environment", - "type": "array", - "items": { - "$ref": "file:_local_environment.json" - } - } - } -} diff --git a/schema/material/fingerprint/primary/p_norm.json b/schema/material/fingerprint/primary/p_norm.json deleted file mode 100644 index 2c9e24466..000000000 --- a/schema/material/fingerprint/primary/p_norm.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "stoichiometric descriptor - pNorm schema", - "description": "values calculated using L-p norm upto p-dimensions", - "allOf": [ - { - "$ref": "file:_primary.json" - } - ], - "properties": { - "dimensions": { - "description": "dimensional spaces in which p-norm is calculated", - "type": "array", - "items": { - "$ref": "file:_norm.json" - } - } - } -} diff --git a/schema/material/fingerprint/primary/valence_orbital_occupancy.json b/schema/material/fingerprint/primary/valence_orbital_occupancy.json deleted file mode 100644 index 9db2dc489..000000000 --- a/schema/material/fingerprint/primary/valence_orbital_occupancy.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "electronic descriptor - valence orbital occupancy schema", - "description": "fraction-weighted average of the number of valance electrons in each orbital divided by total valence electrons", - "allOf": [ - { - "$ref": "file:_primary.json" - } - ], - "properties": { - "orbitals": { - "description": "https://www.nature.com/article-assets/npg/npjcompumats/2016/npjcompumats201628/extref/npjcompumats201628-s1.pdf", - "type": "array", - "items": { - "$ref": "file:_valence.json" - } - } - } -} diff --git a/schema/material/structure/atomic_data.json b/schema/material/structure/atomic_data.json new file mode 100644 index 000000000..9b914d7c0 --- /dev/null +++ b/schema/material/structure/atomic_data.json @@ -0,0 +1,201 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "atomic properties", + "description": "properties of atoms in arrays indexed by ids", + "type": "object", + "properties": { + "valenceElectrons": { + "description": "number of valence electrons", + "properties": { + "value": { + "$ref": "file:atomic_masses.json" + }, + "name": { + "enum": [ + "valence_electrons" + ] + } + } + }, + "occurrence": { + "description": "occurrence of the element for fractional occupancy", + "properties": { + "value": { + "$ref": "file:atomic_masses.json" + }, + "name": { + "enum": [ + "occurrence" + ] + } + } + }, + "oxidationState": { + "description": "oxidation state of the element", + "properties": { + "value": { + "$ref": "file:atomic_masses.json" + }, + "name": { + "enum": [ + "oxidation_state" + ] + } + } + }, + "charges": { + "description": "difference between total and valence electrons on atom", + "properties": { + "value": { + "$ref": "file:atomic_masses.json" + }, + "name": { + "enum": [ + "charges" + ] + }, + "units": { + "enum": [ + "electron charge" + ] + } + } + }, + "radicals": { + "description": "number of unpaired electrons", + "properties": { + "value": { + "$ref": "file:atomic_masses.json" + }, + "name": { + "enum": [ + "radicals" + ] + } + } + }, + "forces": { + "description": "forces on atoms", + "properties": { + "value": { + "$ref": "file:atomic_coordinates.json" + }, + "name": { + "enum": [ + "atomic_forces" + ] + }, + "units": { + "enum": [ + "eV/a.u." + ] + } + } + }, + "atomicRadius": { + "description": "atomic radius. https://en.wikipedia.org/wiki/Atomic_radius#cite_note-slater64-8", + "properties": { + "value": { + "$ref": "file:atomic_masses.json" + }, + "name": { + "enum": [ + "atomic_radius" + ] + }, + "units": { + "enum": [ + "pm", + "nm", + "a.u." + ] + } + } + }, + "electronicConfiguration": { + "description": "electronic configuration. [Ne]3s1", + "allOf": [ + { + "$ref": "file:../../primitive/_array_of_ids.json" + } + ], + "properties": { + "value": { + "type": "string" + }, + "name": { + "enum": [ + "electronic_configuration" + ] + } + } + }, + "paulingNegativity": { + "description": "electro negativity of an atom. Unitless. https://www.nist.gov/pml/productsservices/physical-reference-data", + "properties": { + "value": { + "$ref": "file:atomic_masses.json" + }, + "name": { + "enum": [ + "pauling_negativity" + ] + } + } + }, + "firstIonizationPotential": { + "description": "Ionization energy from 0 to +1 oxidation state", + "properties": { + "value": { + "$ref": "file:atomic_masses.json" + }, + "name": { + "enum": [ + "first_ionization_potential" + ] + }, + "units": { + "enum": [ + "eV" + ] + } + } + }, + "density": { + "description": "density of elemental crystal", + "properties": { + "value": { + "$ref": "file:atomic_masses.json" + }, + "name": { + "enum": [ + "density" + ] + }, + "units": { + "enum": [ + "g/cm^3" + ] + } + } + }, + "cohesiveEnergy": { + "description": "cohesive energy of elemental crystal", + "properties": { + "value": { + "$ref": "file:atomic_masses.json" + }, + "name": { + "enum": [ + "cohesive energy" + ] + }, + "units": { + "enum": [ + "eV" + ] + } + } + } + } +} diff --git a/schema/material/structure/atomic_elements.json b/schema/material/structure/atomic_elements.json index 92a6d723f..559381554 100644 --- a/schema/material/structure/atomic_elements.json +++ b/schema/material/structure/atomic_elements.json @@ -11,60 +11,6 @@ "value": { "description": "atomic elements (eg Si, Ge)", "type": "string" - }, - "occurrence": { - "description": "occurrence of the element for fractional occupancy", - "type": "number" - }, - "oxidationState": { - "description": "oxidation state of the element", - "type": "integer" - }, - "ionicRadius": { - "description": "ionic radius of the element. depends on oxidation state. https://en.wikipedia.org/wiki/Ionic_radius", - "properties": { - "value": { - "type": "number" - }, - "units": { - "enum": [ - "pm", - "nm", - "a.u." - ] - } - } - }, - "charge": { - "description": "difference between total and valence electrons on atom", - "properties": { - "value": { - "description": "atomic charge", - "type": "number" - }, - "units": { - "enum": [ - "electrons" - ] - } - } - }, - "coordinationNumber": { - "description": "number of nearest neighbors", - "type": "number" - }, - "forces": { - "description": "forces on atoms", - "properties": { - "value": { - "$ref": "file:../../primitive/point.json" - }, - "units": { - "enum": [ - "eV/a.u." - ] - } - } } } } diff --git a/schema/material/structure/atomic_masses.json b/schema/material/structure/atomic_masses.json new file mode 100644 index 000000000..fd5c2a5cb --- /dev/null +++ b/schema/material/structure/atomic_masses.json @@ -0,0 +1,16 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "atomic masses", + "description": "masses of atoms by ids, scalar, unitless", + "allOf": [ + { + "$ref": "file:../../primitive/_array_of_ids.json" + } + ], + "properties": { + "value": { + "description": "atomic masses", + "type": "number" + } + } +} diff --git a/schema/material/structure/elements.json b/schema/material/structure/elements.json index d4222398f..c5482c6c4 100644 --- a/schema/material/structure/elements.json +++ b/schema/material/structure/elements.json @@ -2,161 +2,9 @@ "$schema": "http://json-schema.org/draft-04/schema#", "title": "Unique elements and elemental properties", "description": "element symbols by string, unitless", - "properties": { - "element": { - "description": "element symbols (eg Si, Ge)", - "type": "string" - }, - "valenceElectrons": { - "description": "number of valence electrons", - "properties": { - "value": { - "type": "integer" - }, - "name": { - "enum": [ - "valence_electrons" - ] - } - } - }, - "radicals": { - "description": "number of unpaired electrons", - "properties": { - "value": { - "type": "integer" - }, - "name": { - "enum": [ - "radicals" - ] - } - } - }, - "atomicRadius": { - "description": "atomic radius. https://en.wikipedia.org/wiki/Atomic_radius#cite_note-slater64-8", - "properties": { - "name": { - "enum": [ - "atomic_radius" - ] - }, - "value": { - "description": "atomic radius", - "type": "number" - }, - "units": { - "enum": [ - "pm", - "nm", - "a.u." - ] - } - } - }, - "electronicConfiguration": { - "description": "electronic configuration. [Ne]3s1", - "properties": { - "value": { - "type": "string" - }, - "name": { - "enum": [ - "electronic_configuration" - ] - } - } - }, - "atomicMass": { - "description": "atomic mass in a.u", - "properties": { - "name": { - "enum": [ - "atomic_mass" - ] - }, - "value": { - "description": "atomic masses", - "type": "number" - }, - "units": { - "enum": [ - "a.u." - ] - } - } - }, - "paulingNegativity": { - "description": "electro negativity of an atom. Unitless. https://www.nist.gov/pml/productsservices/physical-reference-data", - "properties": { - "value": { - "type": "number" - }, - "name": { - "enum": [ - "electronegativity" - ] - }, - "units": { - "enum": [ - "pauling" - ] - } - } - }, - "firstIonizationPotential": { - "description": "Ionization energy from 0 to +1 oxidation state", - "properties": { - "name": { - "enum": [ - "first_ionization_potential" - ] - }, - "value": { - "type": "number" - }, - "units": { - "enum": [ - "eV" - ] - } - } - }, - "density": { - "description": "density of elemental crystal", - "properties": { - "name": { - "enum": [ - "density" - ] - }, - "value": { - "type": "number" - }, - "units": { - "enum": [ - "g/cm^3" - ] - } - } - }, - "cohesiveEnergy": { - "description": "cohesive energy of elemental crystal per atom", - "properties": { - "name": { - "enum": [ - "cohesive_energy" - ] - }, - "value": { - "type": "number" - }, - "units": { - "enum": [ - "eV/atom" - ] - } - } + "allOf": [ + { + "$ref": "file:atomic_data.json" } - } + ] } From 9f7d83bc0eff55cda245efefc8539c6229200b9b Mon Sep 17 00:00:00 2001 From: Phani Date: Mon, 15 May 2017 14:30:27 -0700 Subject: [PATCH 43/63] cleanup and refactoring --- example/material/fingerprint.json | 8 +- example/material/fingerprint/primary.json | 88 ++----------------- .../fingerprint/primary/_compound_data.json | 20 ----- .../fingerprint/primary/_element_data.json | 12 --- .../fingerprint/primary/_primary.json | 5 -- .../primary/compound_specific.json | 4 - .../primary/compound_specific_array.json | 23 ++++- .../fingerprint/primary/element_specific.json | 6 -- .../material/fingerprint/primary/p_norms.json | 3 + schema/material/fingerprint.json | 5 +- .../fingerprint/{primary => }/_primary.json | 0 schema/material/fingerprint/primary.json | 69 +++++++++------ .../fingerprint/primary/_element_data.json | 40 --------- .../fingerprint/primary/avg_atom_volume.json | 22 +++++ .../primary/compound_specific.json | 49 ++--------- .../primary/compound_specific_array.json | 20 +++-- .../primary/crystal_cell_type.json | 26 ++++++ .../fingerprint/primary/element_specific.json | 18 ++-- .../primary/element_spin_state.json | 29 ++++++ .../primary/elemental_composition.json | 17 ++++ .../fingerprint/primary/equilibrated.json | 25 ++++++ .../primary/local_environment.json | 32 +++++++ .../fingerprint/primary/material_type.json | 28 ++++++ .../material/fingerprint/primary/p_norms.json | 26 ++++++ ...ta.json => valence_orbital_occupancy.json} | 28 +++--- 25 files changed, 330 insertions(+), 273 deletions(-) delete mode 100644 example/material/fingerprint/primary/_compound_data.json delete mode 100644 example/material/fingerprint/primary/_element_data.json delete mode 100644 example/material/fingerprint/primary/_primary.json delete mode 100644 example/material/fingerprint/primary/compound_specific.json delete mode 100644 example/material/fingerprint/primary/element_specific.json create mode 100644 example/material/fingerprint/primary/p_norms.json rename schema/material/fingerprint/{primary => }/_primary.json (100%) delete mode 100644 schema/material/fingerprint/primary/_element_data.json create mode 100644 schema/material/fingerprint/primary/avg_atom_volume.json create mode 100644 schema/material/fingerprint/primary/crystal_cell_type.json create mode 100644 schema/material/fingerprint/primary/element_spin_state.json create mode 100644 schema/material/fingerprint/primary/elemental_composition.json create mode 100644 schema/material/fingerprint/primary/equilibrated.json create mode 100644 schema/material/fingerprint/primary/local_environment.json create mode 100644 schema/material/fingerprint/primary/material_type.json create mode 100644 schema/material/fingerprint/primary/p_norms.json rename schema/material/fingerprint/primary/{_compound_data.json => valence_orbital_occupancy.json} (54%) diff --git a/example/material/fingerprint.json b/example/material/fingerprint.json index 6867ea432..c2f0253c9 100644 --- a/example/material/fingerprint.json +++ b/example/material/fingerprint.json @@ -1,7 +1,9 @@ { - "primary": { - "...": "include(fingerprint/primary.json)" - }, + "primary": [ + { + "...": "include(fingerprint/primary.json)" + } + ], "secondary": { "...": "include(characteristic.json)" } diff --git a/example/material/fingerprint/primary.json b/example/material/fingerprint/primary.json index 3314f833e..435e8852c 100644 --- a/example/material/fingerprint/primary.json +++ b/example/material/fingerprint/primary.json @@ -1,85 +1,7 @@ { - "localEnvironment": { - "...": "include(primary/element_specific.json)" - }, - "representation": { - "description": "structure representation.", - "$ref": "file:primary/compound_specific.json" - }, - "valenceOrbitalOccupancy": { - "description": "s, p, d, and f orbital contribution to total valence electrons in the material ", - "$ref": "file:primary/compound_specific_array.json" - }, - "elementSpinState": { - "type": "element-specific", - "subtype": "nominal", - "category": "electronic", - "elements": [ - { - "name": "Si", - "value": "high" - }, - { - "name": "O", - "value": "low" - } - ] - }, - "pNorm": { - "type": "compound-specific", - "subtype": "numeric", - "category": "stoichiometric", - "data": [ - { - "name": "p03", - "value": 0.693 - }, - { - "name": "p05", - "value": 0.671 - }, - { - "name": "p07", - "value": 0.667 - }, - { - "name": "p09", - "value": 0.667 - } - ] - }, - "elementalComposition": { - "type": "element-specific", - "subtype": "numeric", - "category": "stoichiometric", - "elements": [ - { - "name": "Si", - "value": 0.33 - }, - { - "name": "O", - "value": 0.66 - } - ] - }, - "equilibrium": { - "type": "compound-specific", - "subtype": "nominal", - "category": "structural", - "value": "No" - }, - "materialType": { - "type": "compound-specific", - "subtype": "nominal", - "category": "structural", - "value": "crystal" - }, - "avgAtomVolume": { - "type": "compound-specific", - "subtype": "numeric", - "category": "structural", - "value": 0.039, - "units": "1/Ang^3" - } + "type": "compound-specific", + "subtype": "numeric", + "category": "stoichiometric", + "name": "p_norms", + "...": "include(primary/p_norms.json)" } diff --git a/example/material/fingerprint/primary/_compound_data.json b/example/material/fingerprint/primary/_compound_data.json deleted file mode 100644 index dc9cb1614..000000000 --- a/example/material/fingerprint/primary/_compound_data.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "data": [ - { - "name": "s", - "value": 0.325 - }, - { - "name": "p", - "value": 0.625 - }, - { - "name": "d", - "value": 0.0 - }, - { - "name": "f", - "value": 0.0 - } - ] -} diff --git a/example/material/fingerprint/primary/_element_data.json b/example/material/fingerprint/primary/_element_data.json deleted file mode 100644 index 12fa8b3b1..000000000 --- a/example/material/fingerprint/primary/_element_data.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "elements": [ - { - "name": "Si", - "value": "O" - }, - { - "name": "O", - "value": "X" - } - ] -} diff --git a/example/material/fingerprint/primary/_primary.json b/example/material/fingerprint/primary/_primary.json deleted file mode 100644 index 09a87436c..000000000 --- a/example/material/fingerprint/primary/_primary.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "compound-specific", - "subtype": "nominal", - "category": "structural" -} diff --git a/example/material/fingerprint/primary/compound_specific.json b/example/material/fingerprint/primary/compound_specific.json deleted file mode 100644 index e32094822..000000000 --- a/example/material/fingerprint/primary/compound_specific.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "...": "include(_primary.json)", - "value": "supercell" -} diff --git a/example/material/fingerprint/primary/compound_specific_array.json b/example/material/fingerprint/primary/compound_specific_array.json index 1f9833a1b..3bd024b7b 100644 --- a/example/material/fingerprint/primary/compound_specific_array.json +++ b/example/material/fingerprint/primary/compound_specific_array.json @@ -1,6 +1,21 @@ { - "type": "compound-specific", - "subtype": "numeric", - "category": "electronic", - "...": "include(_compound_data.json)" + "name": "p_norms", + "data": [ + { + "name": "p03", + "value": 0.693 + }, + { + "name": "p05", + "value": 0.671 + }, + { + "name": "p07", + "value": 0.667 + }, + { + "name": "p09", + "value": 0.667 + } + ] } diff --git a/example/material/fingerprint/primary/element_specific.json b/example/material/fingerprint/primary/element_specific.json deleted file mode 100644 index d371ad1ba..000000000 --- a/example/material/fingerprint/primary/element_specific.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "type": "element-specific", - "subtype": "nominal", - "category": "chemical", - "...": "include(_element_data.json)" -} diff --git a/example/material/fingerprint/primary/p_norms.json b/example/material/fingerprint/primary/p_norms.json new file mode 100644 index 000000000..2a4c3a1d3 --- /dev/null +++ b/example/material/fingerprint/primary/p_norms.json @@ -0,0 +1,3 @@ +{ + "...": "include(compound_specific_array.json)" +} diff --git a/schema/material/fingerprint.json b/schema/material/fingerprint.json index 6a11cc933..78310d7bc 100644 --- a/schema/material/fingerprint.json +++ b/schema/material/fingerprint.json @@ -4,8 +4,11 @@ "description": "collection of descriptors with information about materials structure, composition and characteristics required for performing advanced ML tasks", "properties": { "primary": { + "type": "array", "description": "descriptors related to structure, stoichiometry and physical reference data of materials. Calculated on-the-fly ", - "$ref": "file:fingerprint/primary.json" + "items":{ + "$ref": "file:fingerprint/primary.json" + } }, "secondary": { "description": "descriptors related to characteristics from simulations and/or experiments", diff --git a/schema/material/fingerprint/primary/_primary.json b/schema/material/fingerprint/_primary.json similarity index 100% rename from schema/material/fingerprint/primary/_primary.json rename to schema/material/fingerprint/_primary.json diff --git a/schema/material/fingerprint/primary.json b/schema/material/fingerprint/primary.json index c89a42818..0d004105d 100644 --- a/schema/material/fingerprint/primary.json +++ b/schema/material/fingerprint/primary.json @@ -2,42 +2,55 @@ "$schema": "http://json-schema.org/draft-04/schema#", "title": "primary descriptors schema", "description": "collection of stoichiometric, structural, physical, electronic and chemical", + "allOf": [ + { + "$ref": "file:_primary.json" + } + ], "properties": { - "localEnvironment": { - "description": "atom type each element is bonded to", - "$ref": "file:primary/element_specific.json" + "name": { + "description": "Name of the descriptor", + "type": "string", + "enum": [ + "local_environment", + "element_spin_state", + "valence_orbital_occupancy", + "p_norms", + "elemental_composition", + "crystal_cell_type", + "material_type", + "equilibrated", + "avg_atom_volume" + ] + } + }, + "oneOf": [ + { + "$ref": "file:primary/local_environment.json" }, - "elementSpinState": { - "description": "Spin state of each element. Spin state depends on oxidation state and electronic configuration. ", - "$ref": "file:primary/element_specific.json" + { + "$ref": "file:primary/element_spin_state.json" }, - "valenceOrbitalOccupancy": { - "description": "contribution from s, p, d, and f of unique elements to total valence electrons in the material ", - "$ref": "file:primary/compound_specific_array.json" + { + "$ref": "file:primary/valence_orbital_occupancy.json" }, - "pNorm": { - "description": "values calculated using L-p norm upto p-dimensions", - "$ref": "file:primary/compound_specific_array.json" + { + "$ref": "file:primary/p_norms.json" }, - "elementalComposition": { - "description": "elemental composition of the compound", - "$ref": "file:primary/element_specific.json" + { + "$ref": "file:primary/elemental_composition.json" }, - "representation": { - "description": "structure representation.", - "$ref": "file:primary/compound_specific.json" + { + "$ref": "file:primary/crystal_cell_type.json" }, - "equilibrium": { - "description": "Identifies a equilibrium structure.", - "$ref": "file:primary/compound_specific.json" + { + "$ref": "file:primary/material_type.json" }, - "materialType": { - "description": "structure representation.", - "$ref": "file:primary/compound_specific.json" + { + "$ref": "file:primary/equilibrated.json" }, - "avgAtomVolume": { - "description": "structure representation.", - "$ref": "file:primary/compound_specific.json" + { + "$ref": "file:primary/avg_atom_volume.json" } - } + ] } diff --git a/schema/material/fingerprint/primary/_element_data.json b/schema/material/fingerprint/primary/_element_data.json deleted file mode 100644 index a83135815..000000000 --- a/schema/material/fingerprint/primary/_element_data.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "element-specific descriptors data schema", - "description": "element symbol and corresponding values.", - "properties": { - "name": { - "description": "element symbol. Eg: Si", - "type": "string" - }, - "value": { - "oneOf": [ - { - "description": "elemental composition", - "type": "number" - }, - { - "description": "element_spin_states. high and low spin states correspond to states with max number of unpaired electrons with same spin and maximum number of paired spins respectively.", - "type": "string", - "enum": [ - "high", - "intermediate", - "low" - ] - }, - { - "description": "local environemnt. atom symbol to which element is bonded to. X means non-bonded or bonded to any atom other than the ones in the list", - "type": "string", - "enum": [ - "H", - "O", - "S", - "F", - "Cl", - "X" - ] - } - ] - } - } -} diff --git a/schema/material/fingerprint/primary/avg_atom_volume.json b/schema/material/fingerprint/primary/avg_atom_volume.json new file mode 100644 index 000000000..5d76ba23f --- /dev/null +++ b/schema/material/fingerprint/primary/avg_atom_volume.json @@ -0,0 +1,22 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Structural descriptor - average volume per atom schema", + "description": "Total volume divided by number of atoms. Units: 1/Ang**3 ", + "allOf": [ + { + "ref": "compound_specific.json" + } + ], + "properties": { + "name": { + "description": "variable name", + "enum": [ + "avg_atom_volume" + ] + }, + "units": { + "description": "Example: 1/Ang^3", + "type": "string" + } + } +} diff --git a/schema/material/fingerprint/primary/compound_specific.json b/schema/material/fingerprint/primary/compound_specific.json index e7aed4559..f1ab6c189 100644 --- a/schema/material/fingerprint/primary/compound_specific.json +++ b/schema/material/fingerprint/primary/compound_specific.json @@ -2,50 +2,17 @@ "$schema": "http://json-schema.org/draft-04/schema#", "title": "compound specific descriptors schema", "description": "applicable for nominal/ordinal/numeric value types", - "allOf": [ - { - "$ref": "file:_primary.json" - } - ], "properties": { + "name": { + "description": "name of the descriptor", + "type": "string" + }, "value": { - "oneOf": [ - { - "description": "cell representation", - "type": "string", - "enum": [ - "primitive", - "supercell", - "conventional" - ] - }, - { - "description": "material type", - "type": "string", - "enum": [ - "crystal", - "polymer", - "molecule", - "amorphous" - ] - }, - { - "description": "Identifies equilibrium structure", - "type": "string", - "enum": [ - "Yes", - "No" - ] - }, - { - "description": "average volume per atom", - "type": "number" - } + "description": "value of the descriptor", + "type": [ + "string", + "number" ] - }, - "units": { - "description": "Example: 1/Ang^3", - "type": "string" } } } diff --git a/schema/material/fingerprint/primary/compound_specific_array.json b/schema/material/fingerprint/primary/compound_specific_array.json index b8fd5b47d..4d55cf2cc 100644 --- a/schema/material/fingerprint/primary/compound_specific_array.json +++ b/schema/material/fingerprint/primary/compound_specific_array.json @@ -2,17 +2,25 @@ "$schema": "http://json-schema.org/draft-04/schema#", "title": "compound-specific descriptor array schema", "description": "multiple elements related to compound-specific descriptor. Example: p-norms", - "allOf": [ - { - "$ref": "file:_primary.json" - } - ], "properties": { + "name": { + "description": "name of the descriptor", + "type": "string" + }, "data": { "description": "compound-specific descriptor data in an array", "type": "array", "items": { - "$ref": "file:_compound_data.json" + "properties": { + "name": { + "description": "variable name", + "type": "string" + }, + "value": { + "description": "the value for the corresponding elemental property", + "type": "number" + } + } } } } diff --git a/schema/material/fingerprint/primary/crystal_cell_type.json b/schema/material/fingerprint/primary/crystal_cell_type.json new file mode 100644 index 000000000..df444050c --- /dev/null +++ b/schema/material/fingerprint/primary/crystal_cell_type.json @@ -0,0 +1,26 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Structural descriptor - representation of crsytal lattice", + "description": "primitive or conventional or supercell. Representation differentiates between two materials with similiar composition.", + "allOf": [ + { + "ref": "compound_specific.json" + } + ], + "properties": { + "name": { + "description": "variable name", + "enum": [ + "crystal_cell_type" + ] + }, + "value": { + "description": "cell representation", + "enum": [ + "primitive", + "supercell", + "conventional" + ] + } + } +} diff --git a/schema/material/fingerprint/primary/element_specific.json b/schema/material/fingerprint/primary/element_specific.json index af46341de..cb62a58cb 100644 --- a/schema/material/fingerprint/primary/element_specific.json +++ b/schema/material/fingerprint/primary/element_specific.json @@ -2,17 +2,21 @@ "$schema": "http://json-schema.org/draft-04/schema#", "title": "element specific descriptors schema", "description": "applicable for nominal/ordinal/numeric value types", - "allOf": [ - { - "$ref": "file:_primary.json" - } - ], "properties": { "elements": { - "description": "elements in a material and corresponding descriptor data", + "description": "elements in a material and corresponding descriptor value", "type": "array", "items": { - "$ref": "file:_element_data.json" + "properties": { + "name": { + "description": "element symbol. Eg: Si", + "type": "string" + }, + "value": { + "description": "elemental property value", + "type": "string" + } + } } } } diff --git a/schema/material/fingerprint/primary/element_spin_state.json b/schema/material/fingerprint/primary/element_spin_state.json new file mode 100644 index 000000000..3a6094cb4 --- /dev/null +++ b/schema/material/fingerprint/primary/element_spin_state.json @@ -0,0 +1,29 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "element spin state schema schema", + "description": "spin state of each element in the material", + "allOf": [ + { + "ref": "element_specific.json" + } + ], + "properties": { + "name": { + "enum": [ + "element_spin_state" + ] + }, + "elements": { + "items": { + "value": { + "description": "high and low spin states correspond to states with max number of unpaired electrons with same spin and maximum number of paired spins respectively.", + "enum": [ + "high", + "intermediate", + "low" + ] + } + } + } + } +} diff --git a/schema/material/fingerprint/primary/elemental_composition.json b/schema/material/fingerprint/primary/elemental_composition.json new file mode 100644 index 000000000..e07198805 --- /dev/null +++ b/schema/material/fingerprint/primary/elemental_composition.json @@ -0,0 +1,17 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "stocihiometric descriptor, elemental composition schema", + "description": "composition of each element in the material", + "allOf": [ + { + "ref": "compound_specific_array.json" + } + ], + "properties": { + "name": { + "enum": [ + "elemental_composition" + ] + } + } +} diff --git a/schema/material/fingerprint/primary/equilibrated.json b/schema/material/fingerprint/primary/equilibrated.json new file mode 100644 index 000000000..d0bb24bce --- /dev/null +++ b/schema/material/fingerprint/primary/equilibrated.json @@ -0,0 +1,25 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Structural descriptor - identifies whether a structure is at equilibrium", + "description": "Differentiates structures with similar composition but different characteristics", + "allOf": [ + { + "ref": "compound_specific.json" + } + ], + "properties": { + "name": { + "description": "variable name", + "enum": [ + "equilibrated" + ] + }, + "value": { + "description": "Identifies a equilibrium structure.", + "enum": [ + "yes", + "no" + ] + } + } +} diff --git a/schema/material/fingerprint/primary/local_environment.json b/schema/material/fingerprint/primary/local_environment.json new file mode 100644 index 000000000..8d9804666 --- /dev/null +++ b/schema/material/fingerprint/primary/local_environment.json @@ -0,0 +1,32 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "local environment around an atom schema", + "description": "local environment around each element defined by atom type each element is bonded to", + "allOf": [ + { + "ref": "element_specific.json" + } + ], + "properties": { + "name": { + "enum": [ + "local_environment" + ] + }, + "elements": { + "items": { + "value": { + "description": "atom symbol to which element is bonded to. X means non-bonded or bonded to any atom other than the ones in the list", + "enum": [ + "H", + "O", + "S", + "F", + "Cl", + "X" + ] + } + } + } + } +} diff --git a/schema/material/fingerprint/primary/material_type.json b/schema/material/fingerprint/primary/material_type.json new file mode 100644 index 000000000..a636998c3 --- /dev/null +++ b/schema/material/fingerprint/primary/material_type.json @@ -0,0 +1,28 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Structural descriptor - type of material", + "description": "crystal or molecule or amorphous or polymer.", + "allOf": [ + { + "ref": "compound_specific.json" + } + ], + "properties": { + "name": { + "description": "variable name", + "enum": [ + "material_type" + ] + }, + "value": { + "description": "material type", + "type": "string", + "enum": [ + "crystal", + "polymer", + "molecule", + "amorphous" + ] + } + } +} diff --git a/schema/material/fingerprint/primary/p_norms.json b/schema/material/fingerprint/primary/p_norms.json new file mode 100644 index 000000000..0caeb77d3 --- /dev/null +++ b/schema/material/fingerprint/primary/p_norms.json @@ -0,0 +1,26 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "stoichiometric descriptor - p-norms schema", + "description": "values calculated using L-p norm upto p-dimensions", + "allOf": [ + { + "ref": "compound_specific_array.json" + } + ], + "properties": { + "name": { + "enum": [ + "p_norms" + ] + }, + "data": { + "items": { + "name": { + "description": "p-norms. Upto p99 allowed. Eg: p03", + "type": "string", + "pattern": "p[0-9]{2}" + } + } + } + } +} diff --git a/schema/material/fingerprint/primary/_compound_data.json b/schema/material/fingerprint/primary/valence_orbital_occupancy.json similarity index 54% rename from schema/material/fingerprint/primary/_compound_data.json rename to schema/material/fingerprint/primary/valence_orbital_occupancy.json index 5d24a4f8b..59a884835 100644 --- a/schema/material/fingerprint/primary/_compound_data.json +++ b/schema/material/fingerprint/primary/valence_orbital_occupancy.json @@ -1,16 +1,21 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "compound-specific descriptor array elements schema", - "description": "for p-norms and valence_orbital occupancy", + "title": "electronic descriptor - valence orbital occupancy schema", + "description": "fraction-weighted average of the number of valance electrons in each orbital divided by total valence electrons", + "allOf": [ + { + "ref": "compound_specific_array.json" + } + ], "properties": { "name": { - "oneOf": [ - { - "description": "p-norms. Upto p99 allowed. Eg: p3", - "type": "string", - "pattern": "p[0-9]{2}" - }, - { + "enum": [ + "valence_orbital_occupancy" + ] + }, + "data": { + "items": { + "name": { "description": "valence orbital occupancy - https://www.nature.com/article-assets/npg/npjcompumats/2016/npjcompumats201628/extref/npjcompumats201628-s1.pdf", "type": "string", "enum": [ @@ -20,10 +25,7 @@ "f" ] } - ] - }, - "value": { - "type": "number" + } } } } From 8fa82a7cacca4a376d4480833d4f1297f84d19d6 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Mon, 15 May 2017 14:45:13 -0700 Subject: [PATCH 44/63] Cleanups and renaming --- example/material/fingerprint.json | 8 +++++--- schema/material/fingerprint.json | 9 ++++++--- schema/material/fingerprint/primary.json | 4 ++-- ...{compound_specific.json => _compound_specific.json} | 3 ++- ...ecific_array.json => _compound_specific_array.json} | 0 .../{element_specific.json => _element_specific.json} | 0 .../material/fingerprint/primary/avg_atom_volume.json | 9 +++++---- .../fingerprint/primary/crystal_cell_type.json | 3 +-- .../fingerprint/primary/element_spin_state.json | 2 +- .../fingerprint/primary/elemental_composition.json | 2 +- .../primary/{equilibrated.json => is_relaxed.json} | 10 +++------- .../fingerprint/primary/local_environment.json | 2 +- schema/material/fingerprint/primary/material_type.json | 3 +-- schema/material/fingerprint/primary/p_norms.json | 2 +- .../fingerprint/primary/valence_orbital_occupancy.json | 2 +- 15 files changed, 30 insertions(+), 29 deletions(-) rename schema/material/fingerprint/primary/{compound_specific.json => _compound_specific.json} (90%) rename schema/material/fingerprint/primary/{compound_specific_array.json => _compound_specific_array.json} (100%) rename schema/material/fingerprint/primary/{element_specific.json => _element_specific.json} (100%) rename schema/material/fingerprint/primary/{equilibrated.json => is_relaxed.json} (70%) diff --git a/example/material/fingerprint.json b/example/material/fingerprint.json index c2f0253c9..d41d6e520 100644 --- a/example/material/fingerprint.json +++ b/example/material/fingerprint.json @@ -4,7 +4,9 @@ "...": "include(fingerprint/primary.json)" } ], - "secondary": { - "...": "include(characteristic.json)" - } + "secondary": [ + { + "...": "include(characteristic.json)" + } + ] } diff --git a/schema/material/fingerprint.json b/schema/material/fingerprint.json index 78310d7bc..4d2ea2563 100644 --- a/schema/material/fingerprint.json +++ b/schema/material/fingerprint.json @@ -6,13 +6,16 @@ "primary": { "type": "array", "description": "descriptors related to structure, stoichiometry and physical reference data of materials. Calculated on-the-fly ", - "items":{ + "items": { "$ref": "file:fingerprint/primary.json" } }, "secondary": { - "description": "descriptors related to characteristics from simulations and/or experiments", - "$ref": "file:characteristic.json" + "type": "array", + "description": "characteristic properties", + "items": { + "$ref": "file:characteristic.json" + } } }, "required": [ diff --git a/schema/material/fingerprint/primary.json b/schema/material/fingerprint/primary.json index 0d004105d..ee7675b9d 100644 --- a/schema/material/fingerprint/primary.json +++ b/schema/material/fingerprint/primary.json @@ -19,7 +19,7 @@ "elemental_composition", "crystal_cell_type", "material_type", - "equilibrated", + "is_relaxed", "avg_atom_volume" ] } @@ -47,7 +47,7 @@ "$ref": "file:primary/material_type.json" }, { - "$ref": "file:primary/equilibrated.json" + "$ref": "file:primary/is_relaxed.json" }, { "$ref": "file:primary/avg_atom_volume.json" diff --git a/schema/material/fingerprint/primary/compound_specific.json b/schema/material/fingerprint/primary/_compound_specific.json similarity index 90% rename from schema/material/fingerprint/primary/compound_specific.json rename to schema/material/fingerprint/primary/_compound_specific.json index f1ab6c189..3982a4463 100644 --- a/schema/material/fingerprint/primary/compound_specific.json +++ b/schema/material/fingerprint/primary/_compound_specific.json @@ -11,7 +11,8 @@ "description": "value of the descriptor", "type": [ "string", - "number" + "number", + "boolean" ] } } diff --git a/schema/material/fingerprint/primary/compound_specific_array.json b/schema/material/fingerprint/primary/_compound_specific_array.json similarity index 100% rename from schema/material/fingerprint/primary/compound_specific_array.json rename to schema/material/fingerprint/primary/_compound_specific_array.json diff --git a/schema/material/fingerprint/primary/element_specific.json b/schema/material/fingerprint/primary/_element_specific.json similarity index 100% rename from schema/material/fingerprint/primary/element_specific.json rename to schema/material/fingerprint/primary/_element_specific.json diff --git a/schema/material/fingerprint/primary/avg_atom_volume.json b/schema/material/fingerprint/primary/avg_atom_volume.json index 5d76ba23f..d668dd2bb 100644 --- a/schema/material/fingerprint/primary/avg_atom_volume.json +++ b/schema/material/fingerprint/primary/avg_atom_volume.json @@ -4,19 +4,20 @@ "description": "Total volume divided by number of atoms. Units: 1/Ang**3 ", "allOf": [ { - "ref": "compound_specific.json" + "ref": "_compound_specific.json" } ], "properties": { "name": { - "description": "variable name", "enum": [ "avg_atom_volume" ] }, "units": { - "description": "Example: 1/Ang^3", - "type": "string" + "type": "string", + "enum": [ + "1/angstrom^3" + ] } } } diff --git a/schema/material/fingerprint/primary/crystal_cell_type.json b/schema/material/fingerprint/primary/crystal_cell_type.json index df444050c..1e6f49aed 100644 --- a/schema/material/fingerprint/primary/crystal_cell_type.json +++ b/schema/material/fingerprint/primary/crystal_cell_type.json @@ -4,12 +4,11 @@ "description": "primitive or conventional or supercell. Representation differentiates between two materials with similiar composition.", "allOf": [ { - "ref": "compound_specific.json" + "ref": "_compound_specific.json" } ], "properties": { "name": { - "description": "variable name", "enum": [ "crystal_cell_type" ] diff --git a/schema/material/fingerprint/primary/element_spin_state.json b/schema/material/fingerprint/primary/element_spin_state.json index 3a6094cb4..fda63961a 100644 --- a/schema/material/fingerprint/primary/element_spin_state.json +++ b/schema/material/fingerprint/primary/element_spin_state.json @@ -4,7 +4,7 @@ "description": "spin state of each element in the material", "allOf": [ { - "ref": "element_specific.json" + "ref": "_element_specific.json" } ], "properties": { diff --git a/schema/material/fingerprint/primary/elemental_composition.json b/schema/material/fingerprint/primary/elemental_composition.json index e07198805..4e047400b 100644 --- a/schema/material/fingerprint/primary/elemental_composition.json +++ b/schema/material/fingerprint/primary/elemental_composition.json @@ -4,7 +4,7 @@ "description": "composition of each element in the material", "allOf": [ { - "ref": "compound_specific_array.json" + "ref": "_compound_specific_array.json" } ], "properties": { diff --git a/schema/material/fingerprint/primary/equilibrated.json b/schema/material/fingerprint/primary/is_relaxed.json similarity index 70% rename from schema/material/fingerprint/primary/equilibrated.json rename to schema/material/fingerprint/primary/is_relaxed.json index d0bb24bce..bc62ce094 100644 --- a/schema/material/fingerprint/primary/equilibrated.json +++ b/schema/material/fingerprint/primary/is_relaxed.json @@ -4,22 +4,18 @@ "description": "Differentiates structures with similar composition but different characteristics", "allOf": [ { - "ref": "compound_specific.json" + "ref": "_compound_specific.json" } ], "properties": { "name": { - "description": "variable name", "enum": [ - "equilibrated" + "is_relaxed" ] }, "value": { "description": "Identifies a equilibrium structure.", - "enum": [ - "yes", - "no" - ] + "type": "boolean" } } } diff --git a/schema/material/fingerprint/primary/local_environment.json b/schema/material/fingerprint/primary/local_environment.json index 8d9804666..19bd98670 100644 --- a/schema/material/fingerprint/primary/local_environment.json +++ b/schema/material/fingerprint/primary/local_environment.json @@ -4,7 +4,7 @@ "description": "local environment around each element defined by atom type each element is bonded to", "allOf": [ { - "ref": "element_specific.json" + "ref": "_element_specific.json" } ], "properties": { diff --git a/schema/material/fingerprint/primary/material_type.json b/schema/material/fingerprint/primary/material_type.json index a636998c3..3df3be605 100644 --- a/schema/material/fingerprint/primary/material_type.json +++ b/schema/material/fingerprint/primary/material_type.json @@ -4,12 +4,11 @@ "description": "crystal or molecule or amorphous or polymer.", "allOf": [ { - "ref": "compound_specific.json" + "ref": "_compound_specific.json" } ], "properties": { "name": { - "description": "variable name", "enum": [ "material_type" ] diff --git a/schema/material/fingerprint/primary/p_norms.json b/schema/material/fingerprint/primary/p_norms.json index 0caeb77d3..5b19e591f 100644 --- a/schema/material/fingerprint/primary/p_norms.json +++ b/schema/material/fingerprint/primary/p_norms.json @@ -4,7 +4,7 @@ "description": "values calculated using L-p norm upto p-dimensions", "allOf": [ { - "ref": "compound_specific_array.json" + "ref": "_compound_specific_array.json" } ], "properties": { diff --git a/schema/material/fingerprint/primary/valence_orbital_occupancy.json b/schema/material/fingerprint/primary/valence_orbital_occupancy.json index 59a884835..739a88d36 100644 --- a/schema/material/fingerprint/primary/valence_orbital_occupancy.json +++ b/schema/material/fingerprint/primary/valence_orbital_occupancy.json @@ -4,7 +4,7 @@ "description": "fraction-weighted average of the number of valance electrons in each orbital divided by total valence electrons", "allOf": [ { - "ref": "compound_specific_array.json" + "ref": "_compound_specific_array.json" } ], "properties": { From c171f7abf47e1a1c8ee73db46be40d09d6d22797 Mon Sep 17 00:00:00 2001 From: Phani Date: Tue, 16 May 2017 14:03:03 -0700 Subject: [PATCH 45/63] adjusted schema for local_environment --- .../primary/_element_specific.json | 2 +- .../primary/local_environment.json | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/schema/material/fingerprint/primary/_element_specific.json b/schema/material/fingerprint/primary/_element_specific.json index cb62a58cb..1d191e405 100644 --- a/schema/material/fingerprint/primary/_element_specific.json +++ b/schema/material/fingerprint/primary/_element_specific.json @@ -14,7 +14,7 @@ }, "value": { "description": "elemental property value", - "type": "string" + "type": ["string", "array"] } } } diff --git a/schema/material/fingerprint/primary/local_environment.json b/schema/material/fingerprint/primary/local_environment.json index 19bd98670..35358ce89 100644 --- a/schema/material/fingerprint/primary/local_environment.json +++ b/schema/material/fingerprint/primary/local_environment.json @@ -17,14 +17,17 @@ "items": { "value": { "description": "atom symbol to which element is bonded to. X means non-bonded or bonded to any atom other than the ones in the list", - "enum": [ - "H", - "O", - "S", - "F", - "Cl", - "X" - ] + "type": "array", + "items":{ + "enum": [ + "H", + "O", + "S", + "F", + "Cl", + "X" + ] + } } } } From bb6853231a7a1cc4efbe74003fe49c6e9cfff772 Mon Sep 17 00:00:00 2001 From: Phani Date: Fri, 19 May 2017 11:28:16 -0700 Subject: [PATCH 46/63] modified JSON schema to include elemental descriptors --- example/material/fingerprint.json | 5 + example/material/fingerprint/elemental.json | 7 + .../elemental/ionization_potential.json | 4 + example/material/fingerprint/primary.json | 2 +- .../material/fingerprint/primary/p_norms.json | 2 +- .../compound_specific_array.json | 0 .../fingerprint/schemas/element_specific.json | 12 ++ .../material/structure/_elemental_data.json | 40 ++++++ example/material/structure/atomic_data.json | 13 -- example/material/structure/elements.json | 3 +- schema/material/fingerprint.json | 10 +- .../{_primary.json => _schemas.json} | 8 +- schema/material/fingerprint/elemental.json | 40 ++++++ .../fingerprint/elemental/atomic_radius.json | 20 +++ .../elemental/electronegativity.json | 20 +++ .../elemental/ionization_potential.json | 20 +++ .../elemental/unpaired_electrons.json | 20 +++ .../elemental/valence_electrons.json | 20 +++ schema/material/fingerprint/primary.json | 2 +- .../fingerprint/primary/avg_atom_volume.json | 9 +- .../primary/crystal_cell_type.json | 2 +- .../primary/element_spin_state.json | 2 +- .../primary/elemental_composition.json | 5 +- .../fingerprint/primary/is_relaxed.json | 2 +- .../primary/local_environment.json | 2 +- .../fingerprint/primary/material_type.json | 2 +- .../material/fingerprint/primary/p_norms.json | 2 +- .../primary/valence_orbital_occupancy.json | 2 +- .../compound_specific.json} | 0 .../compound_specific_array.json} | 0 .../element_specific.json} | 2 +- .../material/structure/_elemental_data.json | 38 +++++ schema/material/structure/atomic_data.json | 131 ------------------ schema/material/structure/elements.json | 16 ++- schema/material/units.json | 42 ++++++ 35 files changed, 334 insertions(+), 171 deletions(-) create mode 100644 example/material/fingerprint/elemental.json create mode 100644 example/material/fingerprint/elemental/ionization_potential.json rename example/material/fingerprint/{primary => schemas}/compound_specific_array.json (100%) create mode 100644 example/material/fingerprint/schemas/element_specific.json create mode 100644 example/material/structure/_elemental_data.json rename schema/material/fingerprint/{_primary.json => _schemas.json} (80%) create mode 100644 schema/material/fingerprint/elemental.json create mode 100644 schema/material/fingerprint/elemental/atomic_radius.json create mode 100644 schema/material/fingerprint/elemental/electronegativity.json create mode 100644 schema/material/fingerprint/elemental/ionization_potential.json create mode 100644 schema/material/fingerprint/elemental/unpaired_electrons.json create mode 100644 schema/material/fingerprint/elemental/valence_electrons.json rename schema/material/fingerprint/{primary/_compound_specific.json => schemas/compound_specific.json} (100%) rename schema/material/fingerprint/{primary/_compound_specific_array.json => schemas/compound_specific_array.json} (100%) rename schema/material/fingerprint/{primary/_element_specific.json => schemas/element_specific.json} (92%) create mode 100644 schema/material/structure/_elemental_data.json create mode 100644 schema/material/units.json diff --git a/example/material/fingerprint.json b/example/material/fingerprint.json index d41d6e520..49169cf12 100644 --- a/example/material/fingerprint.json +++ b/example/material/fingerprint.json @@ -1,4 +1,9 @@ { + "elemental":[ + { + "...": "include(fingerprint/elemental.json)" + } + ], "primary": [ { "...": "include(fingerprint/primary.json)" diff --git a/example/material/fingerprint/elemental.json b/example/material/fingerprint/elemental.json new file mode 100644 index 000000000..d74194c33 --- /dev/null +++ b/example/material/fingerprint/elemental.json @@ -0,0 +1,7 @@ +{ + "type": "element-specific", + "subtype": "numeric", + "category": "atomic", + "name": "ionization_potential", + "...": "include(elemental/ionization_potential.json)" +} diff --git a/example/material/fingerprint/elemental/ionization_potential.json b/example/material/fingerprint/elemental/ionization_potential.json new file mode 100644 index 000000000..7b77ecc31 --- /dev/null +++ b/example/material/fingerprint/elemental/ionization_potential.json @@ -0,0 +1,4 @@ +{ + "...": "include(../schemas/element_specific.json)", + "units": "eV" +} diff --git a/example/material/fingerprint/primary.json b/example/material/fingerprint/primary.json index 435e8852c..f7824b54e 100644 --- a/example/material/fingerprint/primary.json +++ b/example/material/fingerprint/primary.json @@ -1,5 +1,5 @@ { - "type": "compound-specific", + "type": "compound-specific-array", "subtype": "numeric", "category": "stoichiometric", "name": "p_norms", diff --git a/example/material/fingerprint/primary/p_norms.json b/example/material/fingerprint/primary/p_norms.json index 2a4c3a1d3..66b674d9e 100644 --- a/example/material/fingerprint/primary/p_norms.json +++ b/example/material/fingerprint/primary/p_norms.json @@ -1,3 +1,3 @@ { - "...": "include(compound_specific_array.json)" + "...": "include(../schemas/compound_specific_array.json)" } diff --git a/example/material/fingerprint/primary/compound_specific_array.json b/example/material/fingerprint/schemas/compound_specific_array.json similarity index 100% rename from example/material/fingerprint/primary/compound_specific_array.json rename to example/material/fingerprint/schemas/compound_specific_array.json diff --git a/example/material/fingerprint/schemas/element_specific.json b/example/material/fingerprint/schemas/element_specific.json new file mode 100644 index 000000000..02bd8ecee --- /dev/null +++ b/example/material/fingerprint/schemas/element_specific.json @@ -0,0 +1,12 @@ +{ + "elements": [ + { + "name": "Si", + "value": 8.15 + }, + { + "name": "Ge", + "value": 7.90 + } + ] +} diff --git a/example/material/structure/_elemental_data.json b/example/material/structure/_elemental_data.json new file mode 100644 index 000000000..4600dff73 --- /dev/null +++ b/example/material/structure/_elemental_data.json @@ -0,0 +1,40 @@ +{ + "properties": [ + { + "name": "valence_electrons", + "value": 4 + }, + { + "name": "unpaired_electrons", + "value": 4 + }, + { + "name": "atomic_radius", + "value": 111.0, + "units": "pm" + }, + { + "name": "electron_configuration", + "value": "[Ne]3s23p2" + }, + { + "name": "electronegativity", + "value": 1.90 + }, + { + "name": "ionization_potential", + "value": 8.15, + "units": "eV" + }, + { + "name": "density", + "value": 2.32, + "units": "g/cm^3" + }, + { + "name": "cohesive_energy", + "value": 4.63, + "units": "eV/atom" + } + ] +} diff --git a/example/material/structure/atomic_data.json b/example/material/structure/atomic_data.json index a917f223a..bc00ffbd2 100644 --- a/example/material/structure/atomic_data.json +++ b/example/material/structure/atomic_data.json @@ -1,18 +1,5 @@ { "name": "atomic_data", - "valenceElectrons": { - "value": [ - { - "id": 1, - "value": 4 - }, - { - "id": 2, - "value": 4 - } - ], - "name": "valence_electrons" - }, "charges": { "value": [ { diff --git a/example/material/structure/elements.json b/example/material/structure/elements.json index 0f5cb074e..885421633 100644 --- a/example/material/structure/elements.json +++ b/example/material/structure/elements.json @@ -1,3 +1,4 @@ { - "...": "include(atomic_data.json)" + "element": "Si", + "...": "include(_elemental_data.json)" } diff --git a/schema/material/fingerprint.json b/schema/material/fingerprint.json index 4d2ea2563..28c513615 100644 --- a/schema/material/fingerprint.json +++ b/schema/material/fingerprint.json @@ -1,8 +1,15 @@ { "$schema": "http://json-schema.org/draft-04/schema#", "title": "material fingerprint schema", - "description": "collection of descriptors with information about materials structure, composition and characteristics required for performing advanced ML tasks", + "description": "collection of atomic and material descriptors. Required for performing advanced ML tasks", "properties": { + "elemental": { + "type": "array", + "description": "elemental descriptors. Properties of constituent elements Example: atomic_radius or ionization_potential ", + "items": { + "$ref": "file:fingerprint/elemental.json" + } + }, "primary": { "type": "array", "description": "descriptors related to structure, stoichiometry and physical reference data of materials. Calculated on-the-fly ", @@ -19,6 +26,7 @@ } }, "required": [ + "elemental", "primary", "secondary" ] diff --git a/schema/material/fingerprint/_primary.json b/schema/material/fingerprint/_schemas.json similarity index 80% rename from schema/material/fingerprint/_primary.json rename to schema/material/fingerprint/_schemas.json index 90f01b817..547de39f9 100644 --- a/schema/material/fingerprint/_primary.json +++ b/schema/material/fingerprint/_schemas.json @@ -1,13 +1,14 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "primary descriptor category schema", + "title": "descriptor category schema", "description": "type/subtype each primary descriptor belongs to", "properties": { "type": { "type": "string", "enum": [ "element-specific", - "compound-specific" + "compound-specific", + "compound-specific-array" ] }, "subtype": { @@ -25,7 +26,8 @@ "chemical", "stoichiometric", "structural", - "electronic" + "electronic", + "atomic" ] } } diff --git a/schema/material/fingerprint/elemental.json b/schema/material/fingerprint/elemental.json new file mode 100644 index 000000000..c6bb2b42d --- /dev/null +++ b/schema/material/fingerprint/elemental.json @@ -0,0 +1,40 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "elemental descriptors schema", + "description": "collection of standard data for elements from databases. Eg: NIST physical reference data ", + "allOf": [ + { + "$ref": "file:_schemas.json" + } + ], + "properties": { + "name": { + "description": "Name of the descriptor", + "type": "string", + "enum": [ + "valence_electrons", + "ionization_potential", + "atomic_radius", + "electronegativity", + "unpaired_electrons" + ] + } + }, + "oneOf": [ + { + "$ref": "file:elemental/valence_electrons.json" + }, + { + "$ref": "file:elemental/unpaired_electrons.json" + }, + { + "$ref": "file:elemental/electronegativity.json" + }, + { + "$ref": "file:elemental/ionization_potential.json" + }, + { + "$ref": "file:elemental/atomic_radius.json" + } + ] +} diff --git a/schema/material/fingerprint/elemental/atomic_radius.json b/schema/material/fingerprint/elemental/atomic_radius.json new file mode 100644 index 000000000..a6c3a1607 --- /dev/null +++ b/schema/material/fingerprint/elemental/atomic_radius.json @@ -0,0 +1,20 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "atomic radius schema", + "description": "atomic radius of each element in the material", + "allOf": [ + { + "$ref": "file:../schemas/element_specific.json" + } + ], + "properties": { + "name": { + "enum": [ + "atomic_radius" + ] + }, + "units": { + "$ref":"file:../../units.json#/definitions/length" + } + } +} diff --git a/schema/material/fingerprint/elemental/electronegativity.json b/schema/material/fingerprint/elemental/electronegativity.json new file mode 100644 index 000000000..5ee8d1c53 --- /dev/null +++ b/schema/material/fingerprint/elemental/electronegativity.json @@ -0,0 +1,20 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "pauling electronegativity schema", + "description": "electronegativity of each element in the material on pauling scale", + "allOf": [ + { + "$ref": "file:../schemas/element_specific.json" + } + ], + "properties": { + "name": { + "enum": [ + "electronegativity" + ] + }, + "value": { + "type": "number" + } + } +} diff --git a/schema/material/fingerprint/elemental/ionization_potential.json b/schema/material/fingerprint/elemental/ionization_potential.json new file mode 100644 index 000000000..0c4333232 --- /dev/null +++ b/schema/material/fingerprint/elemental/ionization_potential.json @@ -0,0 +1,20 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "ionization potential schema", + "description": "first ionization potential of each element in the material in eV", + "allOf": [ + { + "$ref": "file:../schemas/element_specific.json" + } + ], + "properties": { + "name": { + "enum": [ + "ionization_potential" + ] + }, + "units": { + "$ref": "file:../../units.json#/definitions/energy" + } + } +} diff --git a/schema/material/fingerprint/elemental/unpaired_electrons.json b/schema/material/fingerprint/elemental/unpaired_electrons.json new file mode 100644 index 000000000..d35f5b768 --- /dev/null +++ b/schema/material/fingerprint/elemental/unpaired_electrons.json @@ -0,0 +1,20 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "unpaired electrons schema", + "description": "number of unpaired electrons in each element in the material", + "allOf": [ + { + "$ref": "file:../schemas/element_specific.json" + } + ], + "properties": { + "name": { + "enum": [ + "unpaired_electrons" + ] + }, + "value": { + "type": "number" + } + } +} diff --git a/schema/material/fingerprint/elemental/valence_electrons.json b/schema/material/fingerprint/elemental/valence_electrons.json new file mode 100644 index 000000000..0effe1809 --- /dev/null +++ b/schema/material/fingerprint/elemental/valence_electrons.json @@ -0,0 +1,20 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "valence electrons schema", + "description": "valence electrons in each element in the material", + "allOf": [ + { + "$ref": "file:../schemas/element_specific.json" + } + ], + "properties": { + "name": { + "enum": [ + "valence_electrons" + ] + }, + "value": { + "type": "number" + } + } +} diff --git a/schema/material/fingerprint/primary.json b/schema/material/fingerprint/primary.json index ee7675b9d..c2fc6b00f 100644 --- a/schema/material/fingerprint/primary.json +++ b/schema/material/fingerprint/primary.json @@ -4,7 +4,7 @@ "description": "collection of stoichiometric, structural, physical, electronic and chemical", "allOf": [ { - "$ref": "file:_primary.json" + "$ref": "file:_schemas.json" } ], "properties": { diff --git a/schema/material/fingerprint/primary/avg_atom_volume.json b/schema/material/fingerprint/primary/avg_atom_volume.json index d668dd2bb..b09f5330f 100644 --- a/schema/material/fingerprint/primary/avg_atom_volume.json +++ b/schema/material/fingerprint/primary/avg_atom_volume.json @@ -1,10 +1,10 @@ { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Structural descriptor - average volume per atom schema", - "description": "Total volume divided by number of atoms. Units: 1/Ang**3 ", + "description": "Total volume divided by number of atoms. Units: ang**3 ", "allOf": [ { - "ref": "_compound_specific.json" + "ref": "file:../schemas/compound_specific.json" } ], "properties": { @@ -14,10 +14,7 @@ ] }, "units": { - "type": "string", - "enum": [ - "1/angstrom^3" - ] + "$ref": "file:../../units.json#/definitions/volume" } } } diff --git a/schema/material/fingerprint/primary/crystal_cell_type.json b/schema/material/fingerprint/primary/crystal_cell_type.json index 1e6f49aed..7ca089241 100644 --- a/schema/material/fingerprint/primary/crystal_cell_type.json +++ b/schema/material/fingerprint/primary/crystal_cell_type.json @@ -4,7 +4,7 @@ "description": "primitive or conventional or supercell. Representation differentiates between two materials with similiar composition.", "allOf": [ { - "ref": "_compound_specific.json" + "$ref": "file:../schemas/compound_specific.json" } ], "properties": { diff --git a/schema/material/fingerprint/primary/element_spin_state.json b/schema/material/fingerprint/primary/element_spin_state.json index fda63961a..b9323dd5e 100644 --- a/schema/material/fingerprint/primary/element_spin_state.json +++ b/schema/material/fingerprint/primary/element_spin_state.json @@ -4,7 +4,7 @@ "description": "spin state of each element in the material", "allOf": [ { - "ref": "_element_specific.json" + "$ref": "file:../schemas/element_specific.json" } ], "properties": { diff --git a/schema/material/fingerprint/primary/elemental_composition.json b/schema/material/fingerprint/primary/elemental_composition.json index 4e047400b..1018a8aeb 100644 --- a/schema/material/fingerprint/primary/elemental_composition.json +++ b/schema/material/fingerprint/primary/elemental_composition.json @@ -4,7 +4,7 @@ "description": "composition of each element in the material", "allOf": [ { - "ref": "_compound_specific_array.json" + "$ref": "file:../schemas/compound_specific_array.json" } ], "properties": { @@ -12,6 +12,9 @@ "enum": [ "elemental_composition" ] + }, + "value":{ + "type": "number" } } } diff --git a/schema/material/fingerprint/primary/is_relaxed.json b/schema/material/fingerprint/primary/is_relaxed.json index bc62ce094..056728bca 100644 --- a/schema/material/fingerprint/primary/is_relaxed.json +++ b/schema/material/fingerprint/primary/is_relaxed.json @@ -4,7 +4,7 @@ "description": "Differentiates structures with similar composition but different characteristics", "allOf": [ { - "ref": "_compound_specific.json" + "$ref": "file:../schemas/compound_specific.json" } ], "properties": { diff --git a/schema/material/fingerprint/primary/local_environment.json b/schema/material/fingerprint/primary/local_environment.json index 35358ce89..a89236938 100644 --- a/schema/material/fingerprint/primary/local_environment.json +++ b/schema/material/fingerprint/primary/local_environment.json @@ -4,7 +4,7 @@ "description": "local environment around each element defined by atom type each element is bonded to", "allOf": [ { - "ref": "_element_specific.json" + "$ref": "file:../schemas/element_specific.json" } ], "properties": { diff --git a/schema/material/fingerprint/primary/material_type.json b/schema/material/fingerprint/primary/material_type.json index 3df3be605..c154286a0 100644 --- a/schema/material/fingerprint/primary/material_type.json +++ b/schema/material/fingerprint/primary/material_type.json @@ -4,7 +4,7 @@ "description": "crystal or molecule or amorphous or polymer.", "allOf": [ { - "ref": "_compound_specific.json" + "$ref": "file:../schemas/compound_specific.json" } ], "properties": { diff --git a/schema/material/fingerprint/primary/p_norms.json b/schema/material/fingerprint/primary/p_norms.json index 5b19e591f..4cf0d7685 100644 --- a/schema/material/fingerprint/primary/p_norms.json +++ b/schema/material/fingerprint/primary/p_norms.json @@ -4,7 +4,7 @@ "description": "values calculated using L-p norm upto p-dimensions", "allOf": [ { - "ref": "_compound_specific_array.json" + "$ref": "file:../schemas/compound_specific_array.json" } ], "properties": { diff --git a/schema/material/fingerprint/primary/valence_orbital_occupancy.json b/schema/material/fingerprint/primary/valence_orbital_occupancy.json index 739a88d36..fe47354ad 100644 --- a/schema/material/fingerprint/primary/valence_orbital_occupancy.json +++ b/schema/material/fingerprint/primary/valence_orbital_occupancy.json @@ -4,7 +4,7 @@ "description": "fraction-weighted average of the number of valance electrons in each orbital divided by total valence electrons", "allOf": [ { - "ref": "_compound_specific_array.json" + "$ref": "file:../schemas/compound_specific_array.json" } ], "properties": { diff --git a/schema/material/fingerprint/primary/_compound_specific.json b/schema/material/fingerprint/schemas/compound_specific.json similarity index 100% rename from schema/material/fingerprint/primary/_compound_specific.json rename to schema/material/fingerprint/schemas/compound_specific.json diff --git a/schema/material/fingerprint/primary/_compound_specific_array.json b/schema/material/fingerprint/schemas/compound_specific_array.json similarity index 100% rename from schema/material/fingerprint/primary/_compound_specific_array.json rename to schema/material/fingerprint/schemas/compound_specific_array.json diff --git a/schema/material/fingerprint/primary/_element_specific.json b/schema/material/fingerprint/schemas/element_specific.json similarity index 92% rename from schema/material/fingerprint/primary/_element_specific.json rename to schema/material/fingerprint/schemas/element_specific.json index 1d191e405..f774083a6 100644 --- a/schema/material/fingerprint/primary/_element_specific.json +++ b/schema/material/fingerprint/schemas/element_specific.json @@ -14,7 +14,7 @@ }, "value": { "description": "elemental property value", - "type": ["string", "array"] + "type": ["string", "number", "array"] } } } diff --git a/schema/material/structure/_elemental_data.json b/schema/material/structure/_elemental_data.json new file mode 100644 index 000000000..8e844845b --- /dev/null +++ b/schema/material/structure/_elemental_data.json @@ -0,0 +1,38 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "standard elemental data", + "description": "properties of elements", + "type": "object", + "properties": { + "name": { + "description": "name of the property", + "enum": [ + "valence_electrons", + "unpaired_electrons", + "atomic_radius", + "electronegativity", + "ionization_potential", + "electron_configuration", + "cohesive_energy", + "density" + ] + }, + "value": { + "description": "value of the property", + "type": ["number", "string"] + }, + "units": { + "oneOf":[ + { + "$ref": "file:../units.json#/definitions/length" + }, + { + "$ref": "file:../units.json#/definitions/energy" + }, + { + "$ref": "file:../units.json#/definitions/density" + } + ] + } + } +} diff --git a/schema/material/structure/atomic_data.json b/schema/material/structure/atomic_data.json index 9b914d7c0..7d6f0b9c1 100644 --- a/schema/material/structure/atomic_data.json +++ b/schema/material/structure/atomic_data.json @@ -4,19 +4,6 @@ "description": "properties of atoms in arrays indexed by ids", "type": "object", "properties": { - "valenceElectrons": { - "description": "number of valence electrons", - "properties": { - "value": { - "$ref": "file:atomic_masses.json" - }, - "name": { - "enum": [ - "valence_electrons" - ] - } - } - }, "occurrence": { "description": "occurrence of the element for fractional occupancy", "properties": { @@ -61,19 +48,6 @@ } } }, - "radicals": { - "description": "number of unpaired electrons", - "properties": { - "value": { - "$ref": "file:atomic_masses.json" - }, - "name": { - "enum": [ - "radicals" - ] - } - } - }, "forces": { "description": "forces on atoms", "properties": { @@ -91,111 +65,6 @@ ] } } - }, - "atomicRadius": { - "description": "atomic radius. https://en.wikipedia.org/wiki/Atomic_radius#cite_note-slater64-8", - "properties": { - "value": { - "$ref": "file:atomic_masses.json" - }, - "name": { - "enum": [ - "atomic_radius" - ] - }, - "units": { - "enum": [ - "pm", - "nm", - "a.u." - ] - } - } - }, - "electronicConfiguration": { - "description": "electronic configuration. [Ne]3s1", - "allOf": [ - { - "$ref": "file:../../primitive/_array_of_ids.json" - } - ], - "properties": { - "value": { - "type": "string" - }, - "name": { - "enum": [ - "electronic_configuration" - ] - } - } - }, - "paulingNegativity": { - "description": "electro negativity of an atom. Unitless. https://www.nist.gov/pml/productsservices/physical-reference-data", - "properties": { - "value": { - "$ref": "file:atomic_masses.json" - }, - "name": { - "enum": [ - "pauling_negativity" - ] - } - } - }, - "firstIonizationPotential": { - "description": "Ionization energy from 0 to +1 oxidation state", - "properties": { - "value": { - "$ref": "file:atomic_masses.json" - }, - "name": { - "enum": [ - "first_ionization_potential" - ] - }, - "units": { - "enum": [ - "eV" - ] - } - } - }, - "density": { - "description": "density of elemental crystal", - "properties": { - "value": { - "$ref": "file:atomic_masses.json" - }, - "name": { - "enum": [ - "density" - ] - }, - "units": { - "enum": [ - "g/cm^3" - ] - } - } - }, - "cohesiveEnergy": { - "description": "cohesive energy of elemental crystal", - "properties": { - "value": { - "$ref": "file:atomic_masses.json" - }, - "name": { - "enum": [ - "cohesive energy" - ] - }, - "units": { - "enum": [ - "eV" - ] - } - } } } } diff --git a/schema/material/structure/elements.json b/schema/material/structure/elements.json index c5482c6c4..a274c8b37 100644 --- a/schema/material/structure/elements.json +++ b/schema/material/structure/elements.json @@ -2,9 +2,17 @@ "$schema": "http://json-schema.org/draft-04/schema#", "title": "Unique elements and elemental properties", "description": "element symbols by string, unitless", - "allOf": [ - { - "$ref": "file:atomic_data.json" + "properties":{ + "element":{ + "description": "element symbol", + "type": "string" + }, + "properties":{ + "description": "elemental properties. standard data", + "type": "array", + "items":{ + "$ref": "file:_elemental_data.json" + } } - ] + } } diff --git a/schema/material/units.json b/schema/material/units.json new file mode 100644 index 000000000..339f0e8cb --- /dev/null +++ b/schema/material/units.json @@ -0,0 +1,42 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "units schema", + "definitions": { + "length":{ + "enum":[ + "km", + "m", + "pm", + "nm", + "angstrom", + "a.u." + ] + }, + "energy":{ + "enum":[ + "kJ/mol", + "eV", + "J/mol", + "hartree", + "cm-1", + "eV/atom" + ] + }, + "volume": { + "enum": [ + "cm^3", + "angstrom^3" + ] + }, + "numberDensity":{ + "enum": [ + "1/angstrom^3" + ] + }, + "density":{ + "enum": [ + "g/cm^3" + ] + } + } +} From 5fc3d78970c09c45d26681440d88c695a18aae91 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Fri, 19 May 2017 18:23:21 -0700 Subject: [PATCH 47/63] Adjusted naming of primary schemas --- .../fingerprint/{_schemas.json => _primary.json} | 3 +-- schema/material/fingerprint/elemental.json | 14 ++++++++++++++ schema/material/fingerprint/primary.json | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) rename schema/material/fingerprint/{_schemas.json => _primary.json} (94%) diff --git a/schema/material/fingerprint/_schemas.json b/schema/material/fingerprint/_primary.json similarity index 94% rename from schema/material/fingerprint/_schemas.json rename to schema/material/fingerprint/_primary.json index 547de39f9..c41efe6f5 100644 --- a/schema/material/fingerprint/_schemas.json +++ b/schema/material/fingerprint/_primary.json @@ -26,8 +26,7 @@ "chemical", "stoichiometric", "structural", - "electronic", - "atomic" + "electronic" ] } } diff --git a/schema/material/fingerprint/elemental.json b/schema/material/fingerprint/elemental.json index c6bb2b42d..e3b9a4d29 100644 --- a/schema/material/fingerprint/elemental.json +++ b/schema/material/fingerprint/elemental.json @@ -18,6 +18,20 @@ "electronegativity", "unpaired_electrons" ] + }, + "type": { + "type": "string", + "enum": [ + "element-specific" + ] + }, + "subtype": { + "description": "type of descriptor, whether it is a number or category", + "type": "string", + "enum": [ + "numeric", + "nominal" + ] } }, "oneOf": [ diff --git a/schema/material/fingerprint/primary.json b/schema/material/fingerprint/primary.json index c2fc6b00f..ee7675b9d 100644 --- a/schema/material/fingerprint/primary.json +++ b/schema/material/fingerprint/primary.json @@ -4,7 +4,7 @@ "description": "collection of stoichiometric, structural, physical, electronic and chemical", "allOf": [ { - "$ref": "file:_schemas.json" + "$ref": "file:_primary.json" } ], "properties": { From 82c66e704d594350636ed1daeb542c6c689c4bc4 Mon Sep 17 00:00:00 2001 From: Phani Date: Tue, 23 May 2017 17:24:49 -0700 Subject: [PATCH 48/63] removed atomic category --- example/material/fingerprint/elemental.json | 1 - schema/material/fingerprint.json | 2 +- schema/material/fingerprint/elemental.json | 5 ----- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/example/material/fingerprint/elemental.json b/example/material/fingerprint/elemental.json index d74194c33..16789cc76 100644 --- a/example/material/fingerprint/elemental.json +++ b/example/material/fingerprint/elemental.json @@ -1,7 +1,6 @@ { "type": "element-specific", "subtype": "numeric", - "category": "atomic", "name": "ionization_potential", "...": "include(elemental/ionization_potential.json)" } diff --git a/schema/material/fingerprint.json b/schema/material/fingerprint.json index 28c513615..99e46a11e 100644 --- a/schema/material/fingerprint.json +++ b/schema/material/fingerprint.json @@ -1,7 +1,7 @@ { "$schema": "http://json-schema.org/draft-04/schema#", "title": "material fingerprint schema", - "description": "collection of atomic and material descriptors. Required for performing advanced ML tasks", + "description": "collection of elemental and material descriptors. Required for performing advanced ML tasks", "properties": { "elemental": { "type": "array", diff --git a/schema/material/fingerprint/elemental.json b/schema/material/fingerprint/elemental.json index e3b9a4d29..4c2da485a 100644 --- a/schema/material/fingerprint/elemental.json +++ b/schema/material/fingerprint/elemental.json @@ -2,11 +2,6 @@ "$schema": "http://json-schema.org/draft-04/schema#", "title": "elemental descriptors schema", "description": "collection of standard data for elements from databases. Eg: NIST physical reference data ", - "allOf": [ - { - "$ref": "file:_schemas.json" - } - ], "properties": { "name": { "description": "Name of the descriptor", From bfc5e6002a9b72f7ed9418ae7c83d8e1e599b42a Mon Sep 17 00:00:00 2001 From: Phani Date: Tue, 23 May 2017 17:57:46 -0700 Subject: [PATCH 49/63] moved element schema to material/elements --- example/material/{structure => elements}/_elemental_data.json | 0 .../{structure/elements.json => elements/element.json} | 0 schema/material/{structure => elements}/_elemental_data.json | 0 .../{structure/elements.json => elements/element.json} | 4 ++-- 4 files changed, 2 insertions(+), 2 deletions(-) rename example/material/{structure => elements}/_elemental_data.json (100%) rename example/material/{structure/elements.json => elements/element.json} (100%) rename schema/material/{structure => elements}/_elemental_data.json (100%) rename schema/material/{structure/elements.json => elements/element.json} (78%) diff --git a/example/material/structure/_elemental_data.json b/example/material/elements/_elemental_data.json similarity index 100% rename from example/material/structure/_elemental_data.json rename to example/material/elements/_elemental_data.json diff --git a/example/material/structure/elements.json b/example/material/elements/element.json similarity index 100% rename from example/material/structure/elements.json rename to example/material/elements/element.json diff --git a/schema/material/structure/_elemental_data.json b/schema/material/elements/_elemental_data.json similarity index 100% rename from schema/material/structure/_elemental_data.json rename to schema/material/elements/_elemental_data.json diff --git a/schema/material/structure/elements.json b/schema/material/elements/element.json similarity index 78% rename from schema/material/structure/elements.json rename to schema/material/elements/element.json index a274c8b37..a8e202de3 100644 --- a/schema/material/structure/elements.json +++ b/schema/material/elements/element.json @@ -1,7 +1,7 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Unique elements and elemental properties", - "description": "element symbols by string, unitless", + "title": "Element symbol and elemental properties schema", + "description": "element symbols", "properties":{ "element":{ "description": "element symbol", From 81acc74ea49aca51d4df9d6b34935aad7d824395 Mon Sep 17 00:00:00 2001 From: Phani Date: Wed, 24 May 2017 16:21:59 -0700 Subject: [PATCH 50/63] added required fields in JSON schema --- .../material/elements/_elemental_data.json | 40 +------------------ example/material/elements/element.json | 39 +++++++++++++++++- .../elemental/ionization_potential.json | 1 + schema/material/elements/_elemental_data.json | 6 ++- schema/material/elements/element.json | 6 ++- schema/material/fingerprint/_primary.json | 6 ++- schema/material/fingerprint/elemental.json | 5 +++ .../fingerprint/elemental/atomic_radius.json | 6 ++- .../elemental/electronegativity.json | 6 ++- .../elemental/ionization_potential.json | 6 ++- .../elemental/unpaired_electrons.json | 6 ++- .../elemental/valence_electrons.json | 6 ++- .../fingerprint/primary/avg_atom_volume.json | 6 ++- .../primary/crystal_cell_type.json | 6 ++- .../primary/element_spin_state.json | 6 ++- .../primary/elemental_composition.json | 6 ++- .../fingerprint/primary/is_relaxed.json | 6 ++- .../primary/local_environment.json | 6 ++- .../fingerprint/primary/material_type.json | 6 ++- .../material/fingerprint/primary/p_norms.json | 6 ++- .../primary/valence_orbital_occupancy.json | 6 ++- .../schemas/compound_specific.json | 6 ++- .../schemas/compound_specific_array.json | 6 ++- .../fingerprint/schemas/element_specific.json | 5 ++- 24 files changed, 145 insertions(+), 59 deletions(-) diff --git a/example/material/elements/_elemental_data.json b/example/material/elements/_elemental_data.json index 4600dff73..7ae6fc43b 100644 --- a/example/material/elements/_elemental_data.json +++ b/example/material/elements/_elemental_data.json @@ -1,40 +1,4 @@ { - "properties": [ - { - "name": "valence_electrons", - "value": 4 - }, - { - "name": "unpaired_electrons", - "value": 4 - }, - { - "name": "atomic_radius", - "value": 111.0, - "units": "pm" - }, - { - "name": "electron_configuration", - "value": "[Ne]3s23p2" - }, - { - "name": "electronegativity", - "value": 1.90 - }, - { - "name": "ionization_potential", - "value": 8.15, - "units": "eV" - }, - { - "name": "density", - "value": 2.32, - "units": "g/cm^3" - }, - { - "name": "cohesive_energy", - "value": 4.63, - "units": "eV/atom" - } - ] + "name": "valence_electrons", + "value": 4 } diff --git a/example/material/elements/element.json b/example/material/elements/element.json index 885421633..3eee65175 100644 --- a/example/material/elements/element.json +++ b/example/material/elements/element.json @@ -1,4 +1,41 @@ { "element": "Si", - "...": "include(_elemental_data.json)" + "properties": [ + { + "name": "valence_electrons", + "value": 4 + }, + { + "name": "unpaired_electrons", + "value": 4 + }, + { + "name": "atomic_radius", + "value": 111.0, + "units": "pm" + }, + { + "name": "electron_configuration", + "value": "[Ne]3s23p2" + }, + { + "name": "electronegativity", + "value": 1.90 + }, + { + "name": "ionization_potential", + "value": 8.15, + "units": "eV" + }, + { + "name": "density", + "value": 2.32, + "units": "g/cm^3" + }, + { + "name": "cohesive_energy", + "value": 4.63, + "units": "eV/atom" + } + ] } diff --git a/example/material/fingerprint/elemental/ionization_potential.json b/example/material/fingerprint/elemental/ionization_potential.json index 7b77ecc31..ae23a2a3f 100644 --- a/example/material/fingerprint/elemental/ionization_potential.json +++ b/example/material/fingerprint/elemental/ionization_potential.json @@ -1,4 +1,5 @@ { "...": "include(../schemas/element_specific.json)", + "name": "ionization_potential", "units": "eV" } diff --git a/schema/material/elements/_elemental_data.json b/schema/material/elements/_elemental_data.json index 8e844845b..54f60acc3 100644 --- a/schema/material/elements/_elemental_data.json +++ b/schema/material/elements/_elemental_data.json @@ -34,5 +34,9 @@ } ] } - } + }, + "required": [ + "name", + "value" + ] } diff --git a/schema/material/elements/element.json b/schema/material/elements/element.json index a8e202de3..e56f921dd 100644 --- a/schema/material/elements/element.json +++ b/schema/material/elements/element.json @@ -14,5 +14,9 @@ "$ref": "file:_elemental_data.json" } } - } + }, + "required":[ + "element", + "properties" + ] } diff --git a/schema/material/fingerprint/_primary.json b/schema/material/fingerprint/_primary.json index c41efe6f5..8a1dc017e 100644 --- a/schema/material/fingerprint/_primary.json +++ b/schema/material/fingerprint/_primary.json @@ -29,5 +29,9 @@ "electronic" ] } - } + }, + "required": [ + "type", + "subtype" + ] } diff --git a/schema/material/fingerprint/elemental.json b/schema/material/fingerprint/elemental.json index 4c2da485a..94cbd22ee 100644 --- a/schema/material/fingerprint/elemental.json +++ b/schema/material/fingerprint/elemental.json @@ -45,5 +45,10 @@ { "$ref": "file:elemental/atomic_radius.json" } + ], + "required": [ + "name", + "type", + "subtype" ] } diff --git a/schema/material/fingerprint/elemental/atomic_radius.json b/schema/material/fingerprint/elemental/atomic_radius.json index a6c3a1607..55dd88904 100644 --- a/schema/material/fingerprint/elemental/atomic_radius.json +++ b/schema/material/fingerprint/elemental/atomic_radius.json @@ -16,5 +16,9 @@ "units": { "$ref":"file:../../units.json#/definitions/length" } - } + }, + "required": [ + "name", + "units" + ] } diff --git a/schema/material/fingerprint/elemental/electronegativity.json b/schema/material/fingerprint/elemental/electronegativity.json index 5ee8d1c53..44c7f233c 100644 --- a/schema/material/fingerprint/elemental/electronegativity.json +++ b/schema/material/fingerprint/elemental/electronegativity.json @@ -16,5 +16,9 @@ "value": { "type": "number" } - } + }, + "required": [ + "name", + "value" + ] } diff --git a/schema/material/fingerprint/elemental/ionization_potential.json b/schema/material/fingerprint/elemental/ionization_potential.json index 0c4333232..132292c01 100644 --- a/schema/material/fingerprint/elemental/ionization_potential.json +++ b/schema/material/fingerprint/elemental/ionization_potential.json @@ -16,5 +16,9 @@ "units": { "$ref": "file:../../units.json#/definitions/energy" } - } + }, + "required":[ + "name", + "units" + ] } diff --git a/schema/material/fingerprint/elemental/unpaired_electrons.json b/schema/material/fingerprint/elemental/unpaired_electrons.json index d35f5b768..8f1fd3810 100644 --- a/schema/material/fingerprint/elemental/unpaired_electrons.json +++ b/schema/material/fingerprint/elemental/unpaired_electrons.json @@ -16,5 +16,9 @@ "value": { "type": "number" } - } + }, + "required": [ + "name", + "value" + ] } diff --git a/schema/material/fingerprint/elemental/valence_electrons.json b/schema/material/fingerprint/elemental/valence_electrons.json index 0effe1809..e4599ce50 100644 --- a/schema/material/fingerprint/elemental/valence_electrons.json +++ b/schema/material/fingerprint/elemental/valence_electrons.json @@ -16,5 +16,9 @@ "value": { "type": "number" } - } + }, + "required": [ + "name", + "value" + ] } diff --git a/schema/material/fingerprint/primary/avg_atom_volume.json b/schema/material/fingerprint/primary/avg_atom_volume.json index b09f5330f..c849a86cb 100644 --- a/schema/material/fingerprint/primary/avg_atom_volume.json +++ b/schema/material/fingerprint/primary/avg_atom_volume.json @@ -16,5 +16,9 @@ "units": { "$ref": "file:../../units.json#/definitions/volume" } - } + }, + "required": [ + "name", + "units" + ] } diff --git a/schema/material/fingerprint/primary/crystal_cell_type.json b/schema/material/fingerprint/primary/crystal_cell_type.json index 7ca089241..4732657fb 100644 --- a/schema/material/fingerprint/primary/crystal_cell_type.json +++ b/schema/material/fingerprint/primary/crystal_cell_type.json @@ -21,5 +21,9 @@ "conventional" ] } - } + }, + "required": [ + "name", + "value" + ] } diff --git a/schema/material/fingerprint/primary/element_spin_state.json b/schema/material/fingerprint/primary/element_spin_state.json index b9323dd5e..fba470586 100644 --- a/schema/material/fingerprint/primary/element_spin_state.json +++ b/schema/material/fingerprint/primary/element_spin_state.json @@ -25,5 +25,9 @@ } } } - } + }, + "required": [ + "name", + "elements" + ] } diff --git a/schema/material/fingerprint/primary/elemental_composition.json b/schema/material/fingerprint/primary/elemental_composition.json index 1018a8aeb..5dcf7eab8 100644 --- a/schema/material/fingerprint/primary/elemental_composition.json +++ b/schema/material/fingerprint/primary/elemental_composition.json @@ -16,5 +16,9 @@ "value":{ "type": "number" } - } + }, + "required": [ + "name", + "value" + ] } diff --git a/schema/material/fingerprint/primary/is_relaxed.json b/schema/material/fingerprint/primary/is_relaxed.json index 056728bca..0ee37aa95 100644 --- a/schema/material/fingerprint/primary/is_relaxed.json +++ b/schema/material/fingerprint/primary/is_relaxed.json @@ -17,5 +17,9 @@ "description": "Identifies a equilibrium structure.", "type": "boolean" } - } + }, + "required": [ + "name", + "value" + ] } diff --git a/schema/material/fingerprint/primary/local_environment.json b/schema/material/fingerprint/primary/local_environment.json index a89236938..c13fbab72 100644 --- a/schema/material/fingerprint/primary/local_environment.json +++ b/schema/material/fingerprint/primary/local_environment.json @@ -31,5 +31,9 @@ } } } - } + }, + "required": [ + "name", + "elements" + ] } diff --git a/schema/material/fingerprint/primary/material_type.json b/schema/material/fingerprint/primary/material_type.json index c154286a0..17455d27c 100644 --- a/schema/material/fingerprint/primary/material_type.json +++ b/schema/material/fingerprint/primary/material_type.json @@ -23,5 +23,9 @@ "amorphous" ] } - } + }, + "required": [ + "name", + "value" + ] } diff --git a/schema/material/fingerprint/primary/p_norms.json b/schema/material/fingerprint/primary/p_norms.json index 4cf0d7685..25cadf602 100644 --- a/schema/material/fingerprint/primary/p_norms.json +++ b/schema/material/fingerprint/primary/p_norms.json @@ -22,5 +22,9 @@ } } } - } + }, + "required": [ + "name", + "data" + ] } diff --git a/schema/material/fingerprint/primary/valence_orbital_occupancy.json b/schema/material/fingerprint/primary/valence_orbital_occupancy.json index fe47354ad..cdb37bb49 100644 --- a/schema/material/fingerprint/primary/valence_orbital_occupancy.json +++ b/schema/material/fingerprint/primary/valence_orbital_occupancy.json @@ -27,5 +27,9 @@ } } } - } + }, + "required": [ + "name", + "data" + ] } diff --git a/schema/material/fingerprint/schemas/compound_specific.json b/schema/material/fingerprint/schemas/compound_specific.json index 3982a4463..31447c516 100644 --- a/schema/material/fingerprint/schemas/compound_specific.json +++ b/schema/material/fingerprint/schemas/compound_specific.json @@ -15,5 +15,9 @@ "boolean" ] } - } + }, + "required": [ + "name", + "value" + ] } diff --git a/schema/material/fingerprint/schemas/compound_specific_array.json b/schema/material/fingerprint/schemas/compound_specific_array.json index 4d55cf2cc..eed9df8c0 100644 --- a/schema/material/fingerprint/schemas/compound_specific_array.json +++ b/schema/material/fingerprint/schemas/compound_specific_array.json @@ -23,5 +23,9 @@ } } } - } + }, + "required": [ + "name", + "data" + ] } diff --git a/schema/material/fingerprint/schemas/element_specific.json b/schema/material/fingerprint/schemas/element_specific.json index f774083a6..11e737b43 100644 --- a/schema/material/fingerprint/schemas/element_specific.json +++ b/schema/material/fingerprint/schemas/element_specific.json @@ -19,5 +19,8 @@ } } } - } + }, + "required": [ + "elements" + ] } From 0a094890ad634aa77a33c8cb86ce0e581c113e54 Mon Sep 17 00:00:00 2001 From: Phani Date: Wed, 24 May 2017 22:17:46 -0700 Subject: [PATCH 51/63] files cleanup --- .../primary/compound_specific_array.json | 21 ---- example/material/structure/elements.json | 3 - .../primary/_compound_specific.json | 19 ---- .../primary/_compound_specific_array.json | 27 ----- .../primary/_element_specific.json | 23 ---- schema/material/structure/atomic_data.json | 105 ------------------ schema/material/structure/elements.json | 10 -- 7 files changed, 208 deletions(-) delete mode 100644 example/material/fingerprint/primary/compound_specific_array.json delete mode 100644 example/material/structure/elements.json delete mode 100644 schema/material/fingerprint/primary/_compound_specific.json delete mode 100644 schema/material/fingerprint/primary/_compound_specific_array.json delete mode 100644 schema/material/fingerprint/primary/_element_specific.json delete mode 100644 schema/material/structure/elements.json diff --git a/example/material/fingerprint/primary/compound_specific_array.json b/example/material/fingerprint/primary/compound_specific_array.json deleted file mode 100644 index 3bd024b7b..000000000 --- a/example/material/fingerprint/primary/compound_specific_array.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "p_norms", - "data": [ - { - "name": "p03", - "value": 0.693 - }, - { - "name": "p05", - "value": 0.671 - }, - { - "name": "p07", - "value": 0.667 - }, - { - "name": "p09", - "value": 0.667 - } - ] -} diff --git a/example/material/structure/elements.json b/example/material/structure/elements.json deleted file mode 100644 index 0f5cb074e..000000000 --- a/example/material/structure/elements.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "...": "include(atomic_data.json)" -} diff --git a/schema/material/fingerprint/primary/_compound_specific.json b/schema/material/fingerprint/primary/_compound_specific.json deleted file mode 100644 index 3982a4463..000000000 --- a/schema/material/fingerprint/primary/_compound_specific.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "compound specific descriptors schema", - "description": "applicable for nominal/ordinal/numeric value types", - "properties": { - "name": { - "description": "name of the descriptor", - "type": "string" - }, - "value": { - "description": "value of the descriptor", - "type": [ - "string", - "number", - "boolean" - ] - } - } -} diff --git a/schema/material/fingerprint/primary/_compound_specific_array.json b/schema/material/fingerprint/primary/_compound_specific_array.json deleted file mode 100644 index 4d55cf2cc..000000000 --- a/schema/material/fingerprint/primary/_compound_specific_array.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "compound-specific descriptor array schema", - "description": "multiple elements related to compound-specific descriptor. Example: p-norms", - "properties": { - "name": { - "description": "name of the descriptor", - "type": "string" - }, - "data": { - "description": "compound-specific descriptor data in an array", - "type": "array", - "items": { - "properties": { - "name": { - "description": "variable name", - "type": "string" - }, - "value": { - "description": "the value for the corresponding elemental property", - "type": "number" - } - } - } - } - } -} diff --git a/schema/material/fingerprint/primary/_element_specific.json b/schema/material/fingerprint/primary/_element_specific.json deleted file mode 100644 index cb62a58cb..000000000 --- a/schema/material/fingerprint/primary/_element_specific.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "element specific descriptors schema", - "description": "applicable for nominal/ordinal/numeric value types", - "properties": { - "elements": { - "description": "elements in a material and corresponding descriptor value", - "type": "array", - "items": { - "properties": { - "name": { - "description": "element symbol. Eg: Si", - "type": "string" - }, - "value": { - "description": "elemental property value", - "type": "string" - } - } - } - } - } -} diff --git a/schema/material/structure/atomic_data.json b/schema/material/structure/atomic_data.json index baa21af5c..7d6f0b9c1 100644 --- a/schema/material/structure/atomic_data.json +++ b/schema/material/structure/atomic_data.json @@ -65,111 +65,6 @@ ] } } - }, - "atomicRadius": { - "description": "atomic radius. https://en.wikipedia.org/wiki/Atomic_radius#cite_note-slater64-8", - "properties": { - "value": { - "$ref": "file:atomic_masses.json" - }, - "name": { - "enum": [ - "atomic_radius" - ] - }, - "units": { - "enum": [ - "pm", - "nm", - "a.u." - ] - } - } - }, - "electronicConfiguration": { - "description": "electronic configuration. [Ne]3s1", - "allOf": [ - { - "$ref": "file:../../primitive/_array_of_ids.json" - } - ], - "properties": { - "value": { - "type": "string" - }, - "name": { - "enum": [ - "electronic_configuration" - ] - } - } - }, - "paulingNegativity": { - "description": "electro negativity of an atom. Unitless. https://www.nist.gov/pml/productsservices/physical-reference-data", - "properties": { - "value": { - "$ref": "file:atomic_masses.json" - }, - "name": { - "enum": [ - "pauling_negativity" - ] - } - } - }, - "firstIonizationPotential": { - "description": "Ionization energy from 0 to +1 oxidation state", - "properties": { - "value": { - "$ref": "file:atomic_masses.json" - }, - "name": { - "enum": [ - "first_ionization_potential" - ] - }, - "units": { - "enum": [ - "eV" - ] - } - } - }, - "density": { - "description": "density of elemental crystal", - "properties": { - "value": { - "$ref": "file:atomic_masses.json" - }, - "name": { - "enum": [ - "density" - ] - }, - "units": { - "enum": [ - "g/cm^3" - ] - } - } - }, - "cohesiveEnergy": { - "description": "cohesive energy of elemental crystal", - "properties": { - "value": { - "$ref": "file:atomic_masses.json" - }, - "name": { - "enum": [ - "cohesive energy" - ] - }, - "units": { - "enum": [ - "eV" - ] - } - } } } } diff --git a/schema/material/structure/elements.json b/schema/material/structure/elements.json deleted file mode 100644 index c5482c6c4..000000000 --- a/schema/material/structure/elements.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Unique elements and elemental properties", - "description": "element symbols by string, unitless", - "allOf": [ - { - "$ref": "file:atomic_data.json" - } - ] -} From d05d3908c78d99c403dbc1955d310e4268dba4a6 Mon Sep 17 00:00:00 2001 From: Phani Date: Sun, 28 May 2017 19:09:53 -0700 Subject: [PATCH 52/63] adjusted JSON schema for fit and predict methods with crossvalidation --- example/job/theory/ml/linear/arguments.json | 4 +- .../job/theory/ml/linear/predict/data.json | 48 +++++++++++++++++-- .../ml/linear/predict/data/data_frame.json | 4 +- .../theory/ml/linear/predict/precision.json | 3 +- schema/job/theory/ml/linear/arguments.json | 12 ++++- .../theory/ml/linear/predict/_scalers.json | 11 +++++ schema/job/theory/ml/linear/predict/data.json | 33 ++++++++++++- .../theory/ml/linear/predict/precision.json | 7 ++- .../predict/standard_scaler/standard.json | 21 ++++++++ 9 files changed, 130 insertions(+), 13 deletions(-) create mode 100644 schema/job/theory/ml/linear/predict/_scalers.json create mode 100644 schema/job/theory/ml/linear/predict/standard_scaler/standard.json diff --git a/example/job/theory/ml/linear/arguments.json b/example/job/theory/ml/linear/arguments.json index 44afd195d..b8cff7ac4 100644 --- a/example/job/theory/ml/linear/arguments.json +++ b/example/job/theory/ml/linear/arguments.json @@ -1,4 +1,6 @@ { "sampleWeight": true, - "trainDataSize": 0.75 + "numFeatures": 2, + "scaler": "StandardScaler", + "numSplits":3 } diff --git a/example/job/theory/ml/linear/predict/data.json b/example/job/theory/ml/linear/predict/data.json index 2d5a1ff8f..6bcb1e513 100644 --- a/example/job/theory/ml/linear/predict/data.json +++ b/example/job/theory/ml/linear/predict/data.json @@ -1,23 +1,63 @@ { + "features": [ + [ + "elemental_composition", + "electronegativity" + ], + [ + "elemental_composition", + "electronegativity" + ] + ], "properties": [ "band_gaps" ], "coefficients": [ [ -3.339e-01, - 2.555e-01, - -1.005e-02 + 2.555e-01 ], [ -3.339e-01, - 2.555e-01, - -1.005e-02 + 2.555e-01 ] ], "intercept": [ 0.5, 0.5 ], + "scaler": [ + { + "mean": [ + 0.5, + 1.95 + ], + "variance": [ + 2.0, + 2.0 + ] + }, + { + "mean": [ + 0.5, + 1.95 + ], + "variance": [ + 2.0, + 2.0 + ] + } + ], + "scores": [ + [ + 0.018, + 0.513 + ], + [ + 0.018, + 0.513 + ] + ], "dataFrame": { "...": "include(data/data_frame.json)" } diff --git a/example/job/theory/ml/linear/predict/data/data_frame.json b/example/job/theory/ml/linear/predict/data/data_frame.json index 2c5c82d5f..9eb425587 100644 --- a/example/job/theory/ml/linear/predict/data/data_frame.json +++ b/example/job/theory/ml/linear/predict/data/data_frame.json @@ -1,13 +1,13 @@ { "c8zG3XcnnTybfP3QQ": { - "density": 2.21, + "electronegativity": 1.90, "elemental_composition": { "Ge": 0.3125, "Si": 0.6875 } }, "wWK2XCyivQrG8j34Z": { - "density": 2.34, + "electronegativity": 2.00, "elemental_composition": { "Ge": 0.1875, "Si": 0.8125 diff --git a/example/job/theory/ml/linear/predict/precision.json b/example/job/theory/ml/linear/predict/precision.json index 50bcb32f2..800a5ccb8 100644 --- a/example/job/theory/ml/linear/predict/precision.json +++ b/example/job/theory/ml/linear/predict/precision.json @@ -1,4 +1,5 @@ { "trainingError": 0.1, - "cvError": 0.3 + "cvError": 0.3, + "score": 0.8 } diff --git a/schema/job/theory/ml/linear/arguments.json b/schema/job/theory/ml/linear/arguments.json index ff48d0c2d..ee2100cbc 100644 --- a/schema/job/theory/ml/linear/arguments.json +++ b/schema/job/theory/ml/linear/arguments.json @@ -6,9 +6,17 @@ "type": "boolean", "description": "specify whether to scale the response variables" }, - "trainDataSize": { + "numSplits":{ "type": "number", - "description": "fraction of the training set used for training the model" + "description": "number of groups to split the training data set for crossvalidation" + }, + "scaler":{ + "type":"string", + "description": "name of the feature scaling method for scaling input features. Eg: StandardScaler" + }, + "numFeatures": { + "type": "number", + "description": "number of features to select for model training" } }, "required": [ diff --git a/schema/job/theory/ml/linear/predict/_scalers.json b/schema/job/theory/ml/linear/predict/_scalers.json new file mode 100644 index 000000000..c6040ab2a --- /dev/null +++ b/schema/job/theory/ml/linear/predict/_scalers.json @@ -0,0 +1,11 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "Feature scaling parameters schema", + "title": "Feature scaling", + "type": "object", + "oneOf":[ + { + "$ref": "standard_scaler/standard.json" + } + ] +} diff --git a/schema/job/theory/ml/linear/predict/data.json b/schema/job/theory/ml/linear/predict/data.json index 09b090be1..7b864fa61 100644 --- a/schema/job/theory/ml/linear/predict/data.json +++ b/schema/job/theory/ml/linear/predict/data.json @@ -29,6 +29,35 @@ "description": "intercept corresponding to the fit for each target in property vector" } }, + "features": { + "type": "array", + "description": "Array of arrays with subset of features used in linear or non-linear fit", + "items": { + "type": "array", + "description": "array of features for each target in property vector", + "items": { + "type": "string" + } + } + }, + "scores": { + "type": "array", + "description": "Array of arrays with pvalues of features used in linear or non-linear fit, https://en.wikipedia.org/wiki/P-value", + "items": { + "type": "array", + "description": "array of pvalues of features for predicting each target in property vector", + "items": { + "type": "number" + } + } + }, + "scaler": { + "type": "array", + "description": "feature scaling parameters from linear/non-linear fit", + "items": { + "$ref": "_scalers.json" + } + }, "dataFrame": { "description": "materials data used to train/fit ml method", "$ref": "file:data/data_frame.json" @@ -37,6 +66,8 @@ "required": [ "properties", "coefficients", - "intercept" + "intercept", + "features", + "scaler" ] } diff --git a/schema/job/theory/ml/linear/predict/precision.json b/schema/job/theory/ml/linear/predict/precision.json index 5a448fb2a..5543f0398 100644 --- a/schema/job/theory/ml/linear/predict/precision.json +++ b/schema/job/theory/ml/linear/predict/precision.json @@ -9,10 +9,13 @@ "cvError": { "description": "cross validation error of the estimator", "type": "number" + }, + "score": { + "description": "prediction score of the estimator. Eg: r2_score", + "type": "number" } }, "required": [ - "trainingError", - "cvError" + "trainingError" ] } diff --git a/schema/job/theory/ml/linear/predict/standard_scaler/standard.json b/schema/job/theory/ml/linear/predict/standard_scaler/standard.json new file mode 100644 index 000000000..788a37f7c --- /dev/null +++ b/schema/job/theory/ml/linear/predict/standard_scaler/standard.json @@ -0,0 +1,21 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Standard scaler parameters schema", + "type": "object", + "properties": { + "mean": { + "type": "array", + "description": "means of datasets in training data", + "items": { + "type": "number" + } + }, + "variance": { + "type": "array", + "description": "variance in datasets in training data", + "items": { + "type": "number" + } + } + } +} From 0c94be6076298f9a81e51b3063027822f53be33f Mon Sep 17 00:00:00 2001 From: Phani Date: Tue, 30 May 2017 14:54:31 -0700 Subject: [PATCH 53/63] merged latest dev --- .../workflow/unit/execution/input.json | 0 .../method/workflow/unit/execution/input.json | 19 ------------------- schema/job/theory/ml/input.json | 2 +- schema/job/workflow/subworkflow/model.json | 4 ++-- .../workflow/subworkflow/model/method.json | 4 ++-- schema/job/workflow/unit/execution.json | 2 +- schema/job/workflow/unit/execution/input.json | 19 +++++++++++++++++++ 7 files changed, 25 insertions(+), 25 deletions(-) rename example/job/{model/method => }/workflow/unit/execution/input.json (100%) delete mode 100644 schema/job/model/method/workflow/unit/execution/input.json create mode 100644 schema/job/workflow/unit/execution/input.json diff --git a/example/job/model/method/workflow/unit/execution/input.json b/example/job/workflow/unit/execution/input.json similarity index 100% rename from example/job/model/method/workflow/unit/execution/input.json rename to example/job/workflow/unit/execution/input.json diff --git a/schema/job/model/method/workflow/unit/execution/input.json b/schema/job/model/method/workflow/unit/execution/input.json deleted file mode 100644 index 21afc4eb6..000000000 --- a/schema/job/model/method/workflow/unit/execution/input.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "execution unit text input schema", - "type": "object", - "properties": { - "name": { - "description": "Input file name. e.g. pw_scf.in", - "type": "string" - }, - "content": { - "description": "Content of the input file. e.g. &CONTROL calculation='scf' ...", - "type": "string" - } - }, - "required": [ - "name", - "content" - ] -} diff --git a/schema/job/theory/ml/input.json b/schema/job/theory/ml/input.json index 378361461..1acc12cad 100644 --- a/schema/job/theory/ml/input.json +++ b/schema/job/theory/ml/input.json @@ -11,7 +11,7 @@ }, { "description": "method read from workflow scope", - "$ref": "file:../../model/method/workflow/unit/_input.json" + "$ref": "file:../../workflow/unit/_input.json" } ] }, diff --git a/schema/job/workflow/subworkflow/model.json b/schema/job/workflow/subworkflow/model.json index b2be4ea63..75898000a 100644 --- a/schema/job/workflow/subworkflow/model.json +++ b/schema/job/workflow/subworkflow/model.json @@ -26,10 +26,10 @@ }, "oneOf": [ { - "$ref": "file:theory/dft.json" + "$ref": "file:../../theory/dft.json" }, { - "$ref": "file:theory/ml.json" + "$ref": "file:../../theory/ml.json" } ], "required": [ diff --git a/schema/job/workflow/subworkflow/model/method.json b/schema/job/workflow/subworkflow/model/method.json index 46c3833dd..d6cf8372d 100644 --- a/schema/job/workflow/subworkflow/model/method.json +++ b/schema/job/workflow/subworkflow/model/method.json @@ -20,10 +20,10 @@ }, "oneOf": [ { - "$ref": "file:../theory/dft/_methods.json" + "$ref": "file:../../../theory/dft/_methods.json" }, { - "$ref": "file:../theory/ml/_methods.json" + "$ref": "file:../../../theory/ml/_methods.json" } ], "required": [ diff --git a/schema/job/workflow/unit/execution.json b/schema/job/workflow/unit/execution.json index 5e28c43a8..caea449f8 100644 --- a/schema/job/workflow/unit/execution.json +++ b/schema/job/workflow/unit/execution.json @@ -22,7 +22,7 @@ }, { "description": "object input (eg. for machine learning)", - "$ref": "file:../../../../input.json" + "$ref": "file:../../input.json" } ] } diff --git a/schema/job/workflow/unit/execution/input.json b/schema/job/workflow/unit/execution/input.json new file mode 100644 index 000000000..6dec40166 --- /dev/null +++ b/schema/job/workflow/unit/execution/input.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "execution unit text input schema", + "type": "object", + "properties": { + "name": { + "description": "Input file name. e.g. pw_scf.in", + "type": "string" + }, + "content": { + "description": "Content of the input file. e.g. &CONTROL calculation='scf' ...", + "type": "string" + } + }, + "required": [ + "name", + "content" + ] +} From 842204a56fbb4e8b6ea26855145f14f9e34db45b Mon Sep 17 00:00:00 2001 From: Phani Date: Tue, 30 May 2017 17:59:12 -0700 Subject: [PATCH 54/63] adjusted JSON schema for ML predict object --- example/job/theory/ml/linear/predict.json | 12 ++-- .../job/theory/ml/linear/predict/data.json | 67 +++++-------------- .../linear/predict/{ => data}/precision.json | 0 .../linear/predict/{data => }/data_frame.json | 0 .../theory/ml/linear/predict/parameters.json | 7 ++ schema/job/theory/ml/linear/predict.json | 12 ++-- .../theory/ml/linear/predict/_scalers.json | 11 --- schema/job/theory/ml/linear/predict/data.json | 47 ++++--------- .../linear/predict/{ => data}/precision.json | 0 .../theory/ml/linear/predict/data/scaler.json | 21 ++++++ .../linear/predict/{data => }/data_frame.json | 0 .../theory/ml/linear/predict/parameters.json | 21 ++++++ .../predict/standard_scaler/standard.json | 21 ------ 13 files changed, 93 insertions(+), 126 deletions(-) rename example/job/theory/ml/linear/predict/{ => data}/precision.json (100%) rename example/job/theory/ml/linear/predict/{data => }/data_frame.json (100%) create mode 100644 example/job/theory/ml/linear/predict/parameters.json delete mode 100644 schema/job/theory/ml/linear/predict/_scalers.json rename schema/job/theory/ml/linear/predict/{ => data}/precision.json (100%) create mode 100644 schema/job/theory/ml/linear/predict/data/scaler.json rename schema/job/theory/ml/linear/predict/{data => }/data_frame.json (100%) create mode 100644 schema/job/theory/ml/linear/predict/parameters.json delete mode 100644 schema/job/theory/ml/linear/predict/standard_scaler/standard.json diff --git a/example/job/theory/ml/linear/predict.json b/example/job/theory/ml/linear/predict.json index 2269835aa..176a9c0b1 100644 --- a/example/job/theory/ml/linear/predict.json +++ b/example/job/theory/ml/linear/predict.json @@ -1,10 +1,12 @@ { - "precision": { - "...": "include(predict/precision.json)" - }, - "data": { - "...": "include(predict/data.json)" + "dataFrame": { + "...": "include(predict/data_frame.json)" }, + "parameters": [ + { + "...": "include(predict/parameters.json)" + } + ], "type": "linear", "subtype": "least_squares" } diff --git a/example/job/theory/ml/linear/predict/data.json b/example/job/theory/ml/linear/predict/data.json index 6bcb1e513..539dbf734 100644 --- a/example/job/theory/ml/linear/predict/data.json +++ b/example/job/theory/ml/linear/predict/data.json @@ -1,64 +1,29 @@ { - "features": [ - [ - "elemental_composition", - "electronegativity" - ], - [ - "elemental_composition", - "electronegativity" - ] - ], - "properties": [ - "band_gaps" - ], + "precision": { + "...": "include(data/precision.json)" + }, "coefficients": [ - [ - -3.339e-01, - 2.555e-01 - ], - [ - -3.339e-01, - 2.555e-01 - ] + -3.339e-01, + 2.555e-01 + ], + "features": [ + "elemental_composition", + "electronegativity" ], "intercept": [ - 0.5, 0.5 ], + "scores": [ + 0.018, + 0.513 + ], "scaler": [ { - "mean": [ + "name": "mean", + "values": [ 0.5, 1.95 - ], - "variance": [ - 2.0, - 2.0 - ] - }, - { - "mean": [ - 0.5, - 1.95 - ], - "variance": [ - 2.0, - 2.0 ] } - ], - "scores": [ - [ - 0.018, - 0.513 - ], - [ - 0.018, - 0.513 - ] - ], - "dataFrame": { - "...": "include(data/data_frame.json)" - } + ] } diff --git a/example/job/theory/ml/linear/predict/precision.json b/example/job/theory/ml/linear/predict/data/precision.json similarity index 100% rename from example/job/theory/ml/linear/predict/precision.json rename to example/job/theory/ml/linear/predict/data/precision.json diff --git a/example/job/theory/ml/linear/predict/data/data_frame.json b/example/job/theory/ml/linear/predict/data_frame.json similarity index 100% rename from example/job/theory/ml/linear/predict/data/data_frame.json rename to example/job/theory/ml/linear/predict/data_frame.json diff --git a/example/job/theory/ml/linear/predict/parameters.json b/example/job/theory/ml/linear/predict/parameters.json new file mode 100644 index 000000000..a351fad7b --- /dev/null +++ b/example/job/theory/ml/linear/predict/parameters.json @@ -0,0 +1,7 @@ +{ + "property": "band_gaps", + "type": "direct", + "data": { + "...": "include(data.json)" + } +} diff --git a/schema/job/theory/ml/linear/predict.json b/schema/job/theory/ml/linear/predict.json index 948dc01d5..fb838c256 100644 --- a/schema/job/theory/ml/linear/predict.json +++ b/schema/job/theory/ml/linear/predict.json @@ -2,12 +2,16 @@ "$schema": "http://json-schema.org/draft-04/schema#", "title": "linear methods predict schema", "properties": { - "precision": { - "$ref": "file:predict/precision.json" + "dataFrame": { + "description": "materials data used to train/fit ml method", + "$ref": "file:predict/data_frame.json" }, - "data": { + "parameters":{ + "type": "array", "description": "object with parameters for a pre-trained method", - "$ref": "file:predict/data.json" + "items":{ + "$ref": "file:predict/parameters.json" + } } }, "allOf": [ diff --git a/schema/job/theory/ml/linear/predict/_scalers.json b/schema/job/theory/ml/linear/predict/_scalers.json deleted file mode 100644 index c6040ab2a..000000000 --- a/schema/job/theory/ml/linear/predict/_scalers.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "description": "Feature scaling parameters schema", - "title": "Feature scaling", - "type": "object", - "oneOf":[ - { - "$ref": "standard_scaler/standard.json" - } - ] -} diff --git a/schema/job/theory/ml/linear/predict/data.json b/schema/job/theory/ml/linear/predict/data.json index 7b864fa61..d70660552 100644 --- a/schema/job/theory/ml/linear/predict/data.json +++ b/schema/job/theory/ml/linear/predict/data.json @@ -2,72 +2,51 @@ "$schema": "http://json-schema.org/draft-04/schema#", "title": "regression parameters schema", "properties": { - "properties": { - "type": "array", - "description": "Array of target properties", - "items": { - "type": "string", - "description": "name of the target property" - } + "precision": { + "$ref": "file:data/precision.json" }, "coefficients": { "type": "array", - "description": "Array of arrays with weights/coefficients from the linear or non-linear fit", + "description": "Array with weights/coefficients of the function for each target in property vector from the linear or non-linear fit", "items": { - "type": "array", - "description": "array of weights/coefficients of the function for each target in property vector", - "items": { - "type": "number" - } + "type": "number" } }, "intercept": { "type": "array", "description": "list of intercepts (shift) from the linear or non-linear fit of data points", "items": { - "type": "number", - "description": "intercept corresponding to the fit for each target in property vector" + "type": "number" } }, "features": { "type": "array", - "description": "Array of arrays with subset of features used in linear or non-linear fit", + "description": "Array with subset of features used in linear or non-linear fit", "items": { - "type": "array", - "description": "array of features for each target in property vector", - "items": { - "type": "string" - } + "type": "string" } }, "scores": { "type": "array", - "description": "Array of arrays with pvalues of features used in linear or non-linear fit, https://en.wikipedia.org/wiki/P-value", + "description": "Array of pvalues of features used in linear or non-linear fit, https://en.wikipedia.org/wiki/P-value", "items": { - "type": "array", - "description": "array of pvalues of features for predicting each target in property vector", - "items": { - "type": "number" - } + "type": "number" } }, "scaler": { "type": "array", "description": "feature scaling parameters from linear/non-linear fit", "items": { - "$ref": "_scalers.json" + "$ref": "file:data/scaler.json" } - }, - "dataFrame": { - "description": "materials data used to train/fit ml method", - "$ref": "file:data/data_frame.json" } }, "required": [ - "properties", + "precision", "coefficients", "intercept", "features", - "scaler" + "scaler", + "scores" ] } diff --git a/schema/job/theory/ml/linear/predict/precision.json b/schema/job/theory/ml/linear/predict/data/precision.json similarity index 100% rename from schema/job/theory/ml/linear/predict/precision.json rename to schema/job/theory/ml/linear/predict/data/precision.json diff --git a/schema/job/theory/ml/linear/predict/data/scaler.json b/schema/job/theory/ml/linear/predict/data/scaler.json new file mode 100644 index 000000000..8b35557a0 --- /dev/null +++ b/schema/job/theory/ml/linear/predict/data/scaler.json @@ -0,0 +1,21 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "scaler parameters schema", + "type": "object", + "properties": { + "name": { + "description": "name of variable", + "enum":[ + "mean", + "variance" + ] + }, + "values": { + "type": "array", + "description": "array of values corresponding to the variable. Example: variance in training data", + "items": { + "type": "number" + } + } + } +} diff --git a/schema/job/theory/ml/linear/predict/data/data_frame.json b/schema/job/theory/ml/linear/predict/data_frame.json similarity index 100% rename from schema/job/theory/ml/linear/predict/data/data_frame.json rename to schema/job/theory/ml/linear/predict/data_frame.json diff --git a/schema/job/theory/ml/linear/predict/parameters.json b/schema/job/theory/ml/linear/predict/parameters.json new file mode 100644 index 000000000..e3dad9c48 --- /dev/null +++ b/schema/job/theory/ml/linear/predict/parameters.json @@ -0,0 +1,21 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "method parameters schema", + "properties": { + "property": { + "type": "string", + "description": "name of the property. Example: band_gaps" + }, + "type": { + "type": "string", + "description": "type of the property. Example: direct" + }, + "data": { + "$ref": "file:data.json" + } + }, + "required": [ + "property", + "data" + ] +} diff --git a/schema/job/theory/ml/linear/predict/standard_scaler/standard.json b/schema/job/theory/ml/linear/predict/standard_scaler/standard.json deleted file mode 100644 index 788a37f7c..000000000 --- a/schema/job/theory/ml/linear/predict/standard_scaler/standard.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Standard scaler parameters schema", - "type": "object", - "properties": { - "mean": { - "type": "array", - "description": "means of datasets in training data", - "items": { - "type": "number" - } - }, - "variance": { - "type": "array", - "description": "variance in datasets in training data", - "items": { - "type": "number" - } - } - } -} From c2d9fa2858a08dbbb29d9663c2e74b229bcba32a Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Tue, 30 May 2017 19:19:29 -0700 Subject: [PATCH 55/63] Added method/model aggregators --- schema/job/theory/_methods.json | 12 ++++++++++++ schema/job/theory/_models.json | 12 ++++++++++++ schema/job/workflow/subworkflow/model.json | 7 ++----- schema/job/workflow/subworkflow/model/method.json | 7 ++----- 4 files changed, 28 insertions(+), 10 deletions(-) create mode 100644 schema/job/theory/_methods.json create mode 100644 schema/job/theory/_models.json diff --git a/schema/job/theory/_methods.json b/schema/job/theory/_methods.json new file mode 100644 index 000000000..4e1b2d1e0 --- /dev/null +++ b/schema/job/theory/_methods.json @@ -0,0 +1,12 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "List of all supported methods", + "oneOf": [ + { + "$ref": "file:dft/_methods.json" + }, + { + "$ref": "file:ml/_methods.json" + } + ] +} diff --git a/schema/job/theory/_models.json b/schema/job/theory/_models.json new file mode 100644 index 000000000..a470cd277 --- /dev/null +++ b/schema/job/theory/_models.json @@ -0,0 +1,12 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "List of supported models", + "oneOf": [ + { + "$ref": "file:dft.json" + }, + { + "$ref": "file:ml.json" + } + ] +} diff --git a/schema/job/workflow/subworkflow/model.json b/schema/job/workflow/subworkflow/model.json index 75898000a..03ef34fd5 100644 --- a/schema/job/workflow/subworkflow/model.json +++ b/schema/job/workflow/subworkflow/model.json @@ -24,12 +24,9 @@ } } }, - "oneOf": [ + "allOf": [ { - "$ref": "file:../../theory/dft.json" - }, - { - "$ref": "file:../../theory/ml.json" + "$ref": "file:../../theory/_models.json" } ], "required": [ diff --git a/schema/job/workflow/subworkflow/model/method.json b/schema/job/workflow/subworkflow/model/method.json index d6cf8372d..6b6e06cfd 100644 --- a/schema/job/workflow/subworkflow/model/method.json +++ b/schema/job/workflow/subworkflow/model/method.json @@ -18,12 +18,9 @@ "type": "object" } }, - "oneOf": [ + "allOf": [ { - "$ref": "file:../../../theory/dft/_methods.json" - }, - { - "$ref": "file:../../../theory/ml/_methods.json" + "$ref": "file:../../../theory/_methods.json" } ], "required": [ From 8e9fda10df482a559674b2610cf36dd49a9547a0 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Tue, 30 May 2017 21:46:53 -0700 Subject: [PATCH 56/63] Reindented validator source --- schema/job/theory/ml/input/fit.json | 9 +++++++++ tests/validate.spec.js | 11 ++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) create mode 100644 schema/job/theory/ml/input/fit.json diff --git a/schema/job/theory/ml/input/fit.json b/schema/job/theory/ml/input/fit.json new file mode 100644 index 000000000..c42a64601 --- /dev/null +++ b/schema/job/theory/ml/input/fit.json @@ -0,0 +1,9 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "fit schema", + "oneOf": [ + { + "$ref": "file:linear/fit.json" + } + ] +} diff --git a/tests/validate.spec.js b/tests/validate.spec.js index fd56d6f12..25410c7b8 100644 --- a/tests/validate.spec.js +++ b/tests/validate.spec.js @@ -42,7 +42,7 @@ function parseJSONInclude(dirpath, filename, isInclude) { json = fs.readFileSync(filepath, 'utf8'), d = JSON.parse(json); if (isInclude) { - if (! isInstance(d, "Object")) { + if (!isInstance(d, "Object")) { throw "The JSON file being included should always be a dict rather than a list"; } } @@ -103,7 +103,7 @@ function walkThoughToInclude(obj, dirpath) { * see walkSync docs for more info. */ walkSync(schemasDir, function (dirPath, dirs, files) { - files.forEach(f=> { + files.forEach(f => { const filePath = path.join(dirPath, f); const dir = _.trimStart(dirPath.replace(schemasDir, ''), '/'); @@ -125,7 +125,7 @@ walkSync(schemasDir, function (dirPath, dirs, files) { }); // generate id for each schema and replace $refs values by appropriate id -schemas.forEach(schema=> { +schemas.forEach(schema => { addIdProp(schema); replaceRefs(schema); }); @@ -159,9 +159,10 @@ function addIdProp(schema) { schema.id = schema.content.id; } + var ajv = Ajv({ allErrors: true, - schemas: schemas.map(schema=> schema.content) + schemas: schemas.map(schema => schema.content) }); describe('ajv', function () { @@ -182,7 +183,7 @@ describe('example', function () { const validator = ajv.getSchema(schema.id); const valid = validator(schema.example); if (!valid) { - console.log(JSON.stringify(schema.example)) + console.log(JSON.stringify(schema.example)); console.log(prettyjson.render(validator.errors)); } chai.expect(valid).to.be.ok; From c07413e11b77d60effd76f662282b7eef2fd7a55 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Tue, 30 May 2017 21:48:37 -0700 Subject: [PATCH 57/63] Refactored ml methods and units MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Removed ‘predict’ and ‘fit’ keywords: the first one should be the method object itself, and the second one is just additional input parameters. Work-in-progress tests fixing. --- example/job/theory/ml/fit.json | 4 -- example/job/theory/ml/input.json | 5 ++- example/job/theory/ml/linear.json | 19 ++++++++- .../theory/ml/linear/{predict => }/data.json | 4 +- .../ml/linear/{predict => }/data_frame.json | 0 example/job/theory/ml/linear/fit.json | 5 --- .../linear/{arguments.json => input_fit.json} | 0 .../linear/{predict/data => }/precision.json | 1 + example/job/theory/ml/linear/predict.json | 12 ------ .../theory/ml/linear/predict/parameters.json | 7 ---- example/job/theory/ml/predict.json | 4 -- .../ml/{predict.json => _input_fit.json} | 4 +- schema/job/theory/ml/_methods.json | 36 ++++++++++++++++- schema/job/theory/ml/fit.json | 9 ----- schema/job/theory/ml/input.json | 34 +++++++++++++--- schema/job/theory/ml/input/fit.json | 14 +++++-- schema/job/theory/ml/input/predict.json | 11 +++++ schema/job/theory/ml/linear.json | 17 ++++++++ .../theory/ml/linear/{predict => }/data.json | 40 ++++++++++++------- schema/job/theory/ml/linear/fit.json | 16 -------- .../linear/{arguments.json => input_fit.json} | 2 +- .../linear/{predict/data => }/precision.json | 0 schema/job/theory/ml/linear/predict.json | 23 ----------- .../theory/ml/linear/predict/data/scaler.json | 21 ---------- .../theory/ml/linear/predict/data_frame.json | 6 --- .../theory/ml/linear/predict/parameters.json | 21 ---------- 26 files changed, 153 insertions(+), 162 deletions(-) delete mode 100644 example/job/theory/ml/fit.json rename example/job/theory/ml/linear/{predict => }/data.json (84%) rename example/job/theory/ml/linear/{predict => }/data_frame.json (100%) delete mode 100644 example/job/theory/ml/linear/fit.json rename example/job/theory/ml/linear/{arguments.json => input_fit.json} (100%) rename example/job/theory/ml/linear/{predict/data => }/precision.json (66%) delete mode 100644 example/job/theory/ml/linear/predict.json delete mode 100644 example/job/theory/ml/linear/predict/parameters.json delete mode 100644 example/job/theory/ml/predict.json rename schema/job/theory/ml/{predict.json => _input_fit.json} (52%) delete mode 100644 schema/job/theory/ml/fit.json create mode 100644 schema/job/theory/ml/input/predict.json rename schema/job/theory/ml/linear/{predict => }/data.json (62%) delete mode 100644 schema/job/theory/ml/linear/fit.json rename schema/job/theory/ml/linear/{arguments.json => input_fit.json} (95%) rename schema/job/theory/ml/linear/{predict/data => }/precision.json (100%) delete mode 100644 schema/job/theory/ml/linear/predict.json delete mode 100644 schema/job/theory/ml/linear/predict/data/scaler.json delete mode 100644 schema/job/theory/ml/linear/predict/data_frame.json delete mode 100644 schema/job/theory/ml/linear/predict/parameters.json diff --git a/example/job/theory/ml/fit.json b/example/job/theory/ml/fit.json deleted file mode 100644 index dd74dd357..000000000 --- a/example/job/theory/ml/fit.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "...": "include(linear/fit.json)" -} - diff --git a/example/job/theory/ml/input.json b/example/job/theory/ml/input.json index 42a566d9b..0f816d054 100644 --- a/example/job/theory/ml/input.json +++ b/example/job/theory/ml/input.json @@ -1,6 +1,7 @@ { - "predict": { - "...": "include(predict.json)" + "type": "predict", + "method": { + "...": "include(linear.json)" }, "exabyteIds": [ "3qp8j2CqCgsSa6ZKj" diff --git a/example/job/theory/ml/linear.json b/example/job/theory/ml/linear.json index eba7910c2..3276c7292 100644 --- a/example/job/theory/ml/linear.json +++ b/example/job/theory/ml/linear.json @@ -1,4 +1,21 @@ { "type": "linear", - "subtype": "least_squares" + "subtype": "least_squares", + "dataFrame": { + "...": "include(linear/data_frame.json)" + }, + "data": { + "perProperty": [ + { + "...": "include(linear/data.json)" + } + ] + }, + "precision": { + "perProperty": [ + { + "...": "include(linear/precision.json)" + } + ] + } } diff --git a/example/job/theory/ml/linear/predict/data.json b/example/job/theory/ml/linear/data.json similarity index 84% rename from example/job/theory/ml/linear/predict/data.json rename to example/job/theory/ml/linear/data.json index 539dbf734..3659cb6af 100644 --- a/example/job/theory/ml/linear/predict/data.json +++ b/example/job/theory/ml/linear/data.json @@ -1,7 +1,5 @@ { - "precision": { - "...": "include(data/precision.json)" - }, + "name": "band_gaps:indirect", "coefficients": [ -3.339e-01, 2.555e-01 diff --git a/example/job/theory/ml/linear/predict/data_frame.json b/example/job/theory/ml/linear/data_frame.json similarity index 100% rename from example/job/theory/ml/linear/predict/data_frame.json rename to example/job/theory/ml/linear/data_frame.json diff --git a/example/job/theory/ml/linear/fit.json b/example/job/theory/ml/linear/fit.json deleted file mode 100644 index 488379f21..000000000 --- a/example/job/theory/ml/linear/fit.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "linear", - "subtype": "least_squares", - "arguments": "include(arguments.json)" -} diff --git a/example/job/theory/ml/linear/arguments.json b/example/job/theory/ml/linear/input_fit.json similarity index 100% rename from example/job/theory/ml/linear/arguments.json rename to example/job/theory/ml/linear/input_fit.json diff --git a/example/job/theory/ml/linear/predict/data/precision.json b/example/job/theory/ml/linear/precision.json similarity index 66% rename from example/job/theory/ml/linear/predict/data/precision.json rename to example/job/theory/ml/linear/precision.json index 800a5ccb8..49be13ab6 100644 --- a/example/job/theory/ml/linear/predict/data/precision.json +++ b/example/job/theory/ml/linear/precision.json @@ -1,4 +1,5 @@ { + "name": "band_gaps:indirect", "trainingError": 0.1, "cvError": 0.3, "score": 0.8 diff --git a/example/job/theory/ml/linear/predict.json b/example/job/theory/ml/linear/predict.json deleted file mode 100644 index 176a9c0b1..000000000 --- a/example/job/theory/ml/linear/predict.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "dataFrame": { - "...": "include(predict/data_frame.json)" - }, - "parameters": [ - { - "...": "include(predict/parameters.json)" - } - ], - "type": "linear", - "subtype": "least_squares" -} diff --git a/example/job/theory/ml/linear/predict/parameters.json b/example/job/theory/ml/linear/predict/parameters.json deleted file mode 100644 index a351fad7b..000000000 --- a/example/job/theory/ml/linear/predict/parameters.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "property": "band_gaps", - "type": "direct", - "data": { - "...": "include(data.json)" - } -} diff --git a/example/job/theory/ml/predict.json b/example/job/theory/ml/predict.json deleted file mode 100644 index 52f701569..000000000 --- a/example/job/theory/ml/predict.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "...": "include(linear/predict.json)" -} - diff --git a/schema/job/theory/ml/predict.json b/schema/job/theory/ml/_input_fit.json similarity index 52% rename from schema/job/theory/ml/predict.json rename to schema/job/theory/ml/_input_fit.json index 1a2d70e22..d2b6e04a9 100644 --- a/schema/job/theory/ml/predict.json +++ b/schema/job/theory/ml/_input_fit.json @@ -1,9 +1,9 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "predict schema", + "title": "List of input fit arguments", "oneOf": [ { - "$ref": "file:linear/predict.json" + "$ref": "file:linear/input_fit.json" } ] } diff --git a/schema/job/theory/ml/_methods.json b/schema/job/theory/ml/_methods.json index c062f8cc2..de59940eb 100644 --- a/schema/job/theory/ml/_methods.json +++ b/schema/job/theory/ml/_methods.json @@ -1,6 +1,40 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "List of methods", + "title": "List of methods for ML", + "properties": { + "dataFrame": { + "description": "data frame used to train ml method", + "type": "object" + }, + "precision": { + "perProperty": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "characteristic property name in a flat format: eg. `band_gaps:indirect`", + "type": "string" + } + } + } + } + }, + "data": { + "perProperty": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "characteristic property name in a flat format: eg. `band_gaps:indirect`", + "type": "string" + } + } + } + } + } + }, "oneOf": [ { "$ref": "file:linear.json" diff --git a/schema/job/theory/ml/fit.json b/schema/job/theory/ml/fit.json deleted file mode 100644 index c42a64601..000000000 --- a/schema/job/theory/ml/fit.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "fit schema", - "oneOf": [ - { - "$ref": "file:linear/fit.json" - } - ] -} diff --git a/schema/job/theory/ml/input.json b/schema/job/theory/ml/input.json index 1acc12cad..6a38f4f97 100644 --- a/schema/job/theory/ml/input.json +++ b/schema/job/theory/ml/input.json @@ -2,12 +2,37 @@ "$schema": "http://json-schema.org/draft-04/schema#", "title": "ML methods input schema", "type": "object", + "oneOf": [ + { + "properties": { + "type": { + "enum": [ + "fit" + ] + }, + "allOf": [ + { + "$ref": "file:_input_fit.json" + } + ] + } + }, + { + "properties": { + "type": { + "enum": [ + "predict" + ] + } + } + } + ], "properties": { - "predict": { + "method": { "oneOf": [ { - "description": "one of the pre-trained ml methods", - "$ref": "file:predict.json" + "description": "pre-trained ml method (when predicting) or an object describing a new one to be fit", + "$ref": "file:../methods.json" }, { "description": "method read from workflow scope", @@ -15,9 +40,6 @@ } ] }, - "fit": { - "$ref": "file:fit.json" - }, "targetProperties": { "description": "target properties to predict", "type": "array" diff --git a/schema/job/theory/ml/input/fit.json b/schema/job/theory/ml/input/fit.json index c42a64601..521854541 100644 --- a/schema/job/theory/ml/input/fit.json +++ b/schema/job/theory/ml/input/fit.json @@ -1,9 +1,15 @@ { "$schema": "http://json-schema.org/draft-04/schema#", "title": "fit schema", - "oneOf": [ - { - "$ref": "file:linear/fit.json" + "properties": { + "type": { + "enum": [ + "fit" + ] + }, + "arguments": { + "description": "additional arguments for fit method", + "$ref": "file:arguments.json" } - ] + } } diff --git a/schema/job/theory/ml/input/predict.json b/schema/job/theory/ml/input/predict.json new file mode 100644 index 000000000..50946dcb7 --- /dev/null +++ b/schema/job/theory/ml/input/predict.json @@ -0,0 +1,11 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "fit schema", + "properties": { + "type": { + "enum": [ + "predict" + ] + } + } +} diff --git a/schema/job/theory/ml/linear.json b/schema/job/theory/ml/linear.json index 7d3d8a3fd..af204ef61 100644 --- a/schema/job/theory/ml/linear.json +++ b/schema/job/theory/ml/linear.json @@ -12,6 +12,23 @@ "least_squares", "ridge" ] + }, + "dataFrame": { + "$ref": "file:linear/data_frame.json" + }, + "precision": { + "perProperty": { + "items": { + "$ref": "file:linear/precision.json" + } + } + }, + "data": { + "perProperty": { + "items": { + "$ref": "file:linear/data.json" + } + } } } } diff --git a/schema/job/theory/ml/linear/predict/data.json b/schema/job/theory/ml/linear/data.json similarity index 62% rename from schema/job/theory/ml/linear/predict/data.json rename to schema/job/theory/ml/linear/data.json index d70660552..d3e0c64bf 100644 --- a/schema/job/theory/ml/linear/predict/data.json +++ b/schema/job/theory/ml/linear/data.json @@ -2,9 +2,6 @@ "$schema": "http://json-schema.org/draft-04/schema#", "title": "regression parameters schema", "properties": { - "precision": { - "$ref": "file:data/precision.json" - }, "coefficients": { "type": "array", "description": "Array with weights/coefficients of the function for each target in property vector from the linear or non-linear fit", @@ -37,16 +34,31 @@ "type": "array", "description": "feature scaling parameters from linear/non-linear fit", "items": { - "$ref": "file:data/scaler.json" + "properties": { + "name": { + "description": "name of variable", + "enum": [ + "mean", + "variance" + ] + }, + "values": { + "type": "array", + "description": "array of values corresponding to the variable. Example: variance in training data", + "items": { + "type": "number" + } + } + } } - } - }, - "required": [ - "precision", - "coefficients", - "intercept", - "features", - "scaler", - "scores" - ] + }, + "required": [ + "precision", + "coefficients", + "intercept", + "features", + "scaler", + "scores" + ] + } } diff --git a/schema/job/theory/ml/linear/fit.json b/schema/job/theory/ml/linear/fit.json deleted file mode 100644 index b65cbd32f..000000000 --- a/schema/job/theory/ml/linear/fit.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "linear methods fit schema", - "properties": { - "arguments": { - "description": "additional arguments for fit method", - "$ref": "file:arguments.json" - } - }, - "allOf": [ - { - "description": "linear methods schema", - "$ref": "file:../linear.json" - } - ] -} diff --git a/schema/job/theory/ml/linear/arguments.json b/schema/job/theory/ml/linear/input_fit.json similarity index 95% rename from schema/job/theory/ml/linear/arguments.json rename to schema/job/theory/ml/linear/input_fit.json index ee2100cbc..11fc64496 100644 --- a/schema/job/theory/ml/linear/arguments.json +++ b/schema/job/theory/ml/linear/input_fit.json @@ -8,7 +8,7 @@ }, "numSplits":{ "type": "number", - "description": "number of groups to split the training data set for crossvalidation" + "description": "number of groups to split the training data set for cross-validation" }, "scaler":{ "type":"string", diff --git a/schema/job/theory/ml/linear/predict/data/precision.json b/schema/job/theory/ml/linear/precision.json similarity index 100% rename from schema/job/theory/ml/linear/predict/data/precision.json rename to schema/job/theory/ml/linear/precision.json diff --git a/schema/job/theory/ml/linear/predict.json b/schema/job/theory/ml/linear/predict.json deleted file mode 100644 index fb838c256..000000000 --- a/schema/job/theory/ml/linear/predict.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "linear methods predict schema", - "properties": { - "dataFrame": { - "description": "materials data used to train/fit ml method", - "$ref": "file:predict/data_frame.json" - }, - "parameters":{ - "type": "array", - "description": "object with parameters for a pre-trained method", - "items":{ - "$ref": "file:predict/parameters.json" - } - } - }, - "allOf": [ - { - "description": "linear methods schema", - "$ref": "file:../linear.json" - } - ] -} diff --git a/schema/job/theory/ml/linear/predict/data/scaler.json b/schema/job/theory/ml/linear/predict/data/scaler.json deleted file mode 100644 index 8b35557a0..000000000 --- a/schema/job/theory/ml/linear/predict/data/scaler.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "scaler parameters schema", - "type": "object", - "properties": { - "name": { - "description": "name of variable", - "enum":[ - "mean", - "variance" - ] - }, - "values": { - "type": "array", - "description": "array of values corresponding to the variable. Example: variance in training data", - "items": { - "type": "number" - } - } - } -} diff --git a/schema/job/theory/ml/linear/predict/data_frame.json b/schema/job/theory/ml/linear/predict/data_frame.json deleted file mode 100644 index fbac62461..000000000 --- a/schema/job/theory/ml/linear/predict/data_frame.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "description": "Materials data used train/fit ml method", - "title": "input data schema", - "type": "object" -} diff --git a/schema/job/theory/ml/linear/predict/parameters.json b/schema/job/theory/ml/linear/predict/parameters.json deleted file mode 100644 index e3dad9c48..000000000 --- a/schema/job/theory/ml/linear/predict/parameters.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "method parameters schema", - "properties": { - "property": { - "type": "string", - "description": "name of the property. Example: band_gaps" - }, - "type": { - "type": "string", - "description": "type of the property. Example: direct" - }, - "data": { - "$ref": "file:data.json" - } - }, - "required": [ - "property", - "data" - ] -} From a0670ba3311659d2ced2837c1f6a06940ebc7a71 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Tue, 30 May 2017 22:04:49 -0700 Subject: [PATCH 58/63] Fixed tests --- example/job/theory/ml/_methods.json | 3 --- example/job/theory/ml/input.json | 9 -------- schema/job/theory/ml/input.json | 23 +++------------------ schema/job/theory/ml/input/fit.json | 9 ++++---- schema/job/theory/ml/linear/data.json | 20 +++++++++--------- schema/job/theory/ml/linear/data_frame.json | 6 ++++++ 6 files changed, 24 insertions(+), 46 deletions(-) delete mode 100644 example/job/theory/ml/_methods.json delete mode 100644 example/job/theory/ml/input.json create mode 100644 schema/job/theory/ml/linear/data_frame.json diff --git a/example/job/theory/ml/_methods.json b/example/job/theory/ml/_methods.json deleted file mode 100644 index 9b1f25290..000000000 --- a/example/job/theory/ml/_methods.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "...": "include(linear.json)" -} diff --git a/example/job/theory/ml/input.json b/example/job/theory/ml/input.json deleted file mode 100644 index 0f816d054..000000000 --- a/example/job/theory/ml/input.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "type": "predict", - "method": { - "...": "include(linear.json)" - }, - "exabyteIds": [ - "3qp8j2CqCgsSa6ZKj" - ] -} diff --git a/schema/job/theory/ml/input.json b/schema/job/theory/ml/input.json index 6a38f4f97..595136910 100644 --- a/schema/job/theory/ml/input.json +++ b/schema/job/theory/ml/input.json @@ -4,27 +4,10 @@ "type": "object", "oneOf": [ { - "properties": { - "type": { - "enum": [ - "fit" - ] - }, - "allOf": [ - { - "$ref": "file:_input_fit.json" - } - ] - } + "$ref": "file:input/fit.json" }, { - "properties": { - "type": { - "enum": [ - "predict" - ] - } - } + "$ref": "file:input/predict.json" } ], "properties": { @@ -32,7 +15,7 @@ "oneOf": [ { "description": "pre-trained ml method (when predicting) or an object describing a new one to be fit", - "$ref": "file:../methods.json" + "$ref": "file:../_methods.json" }, { "description": "method read from workflow scope", diff --git a/schema/job/theory/ml/input/fit.json b/schema/job/theory/ml/input/fit.json index 521854541..9fa2b4011 100644 --- a/schema/job/theory/ml/input/fit.json +++ b/schema/job/theory/ml/input/fit.json @@ -1,15 +1,16 @@ { "$schema": "http://json-schema.org/draft-04/schema#", "title": "fit schema", + "allOf": [ + { + "$ref": "file:../_input_fit.json" + } + ], "properties": { "type": { "enum": [ "fit" ] - }, - "arguments": { - "description": "additional arguments for fit method", - "$ref": "file:arguments.json" } } } diff --git a/schema/job/theory/ml/linear/data.json b/schema/job/theory/ml/linear/data.json index d3e0c64bf..4ce4693ae 100644 --- a/schema/job/theory/ml/linear/data.json +++ b/schema/job/theory/ml/linear/data.json @@ -51,14 +51,14 @@ } } } - }, - "required": [ - "precision", - "coefficients", - "intercept", - "features", - "scaler", - "scores" - ] - } + } + }, + "required": [ + "coefficients", + "intercept", + "features", + "scaler", + "scores" + ] } + diff --git a/schema/job/theory/ml/linear/data_frame.json b/schema/job/theory/ml/linear/data_frame.json new file mode 100644 index 000000000..4b5394091 --- /dev/null +++ b/schema/job/theory/ml/linear/data_frame.json @@ -0,0 +1,6 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "data frame for linear method (TODO: define)", + "type": "object" +} + From 678ea28ab0a7ffc730da6cce49e722abd48cfea8 Mon Sep 17 00:00:00 2001 From: Phani Date: Wed, 31 May 2017 10:31:29 -0700 Subject: [PATCH 59/63] fixed failed tests --- example/job/theory/ml/input.json | 10 ++++++++++ schema/job/app.json | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 example/job/theory/ml/input.json diff --git a/example/job/theory/ml/input.json b/example/job/theory/ml/input.json new file mode 100644 index 000000000..f35750ced --- /dev/null +++ b/example/job/theory/ml/input.json @@ -0,0 +1,10 @@ +{ + "type": "predict", + "method": "include(linear.json)", + "targetProperties": [ + "band_gaps" + ], + "exabyteIds":[ + "LCthJ6E2QabYCZqf3" + ] +} diff --git a/schema/job/app.json b/schema/job/app.json index 5ef3bffdd..a9b585929 100644 --- a/schema/job/app.json +++ b/schema/job/app.json @@ -33,8 +33,8 @@ }, { "$ref": "file:software/ml.json" - }, - { + }, + { "$ref": "file:software/shell.json" }, { From 324bf3e256924914eb291bd4e9b521799f208c8f Mon Sep 17 00:00:00 2001 From: Phani Date: Wed, 31 May 2017 11:37:21 -0700 Subject: [PATCH 60/63] clean up and minor changes in ml input fit predict json --- example/job/theory/ml/input.json | 3 +-- example/job/theory/ml/input/predict.json | 4 ++++ schema/job/theory/ml/_input_fit.json | 12 ++++++++---- schema/job/theory/ml/input.json | 16 ---------------- schema/job/theory/ml/input/fit.json | 7 ++++++- schema/job/theory/ml/input/predict.json | 15 ++++++++++++++- 6 files changed, 33 insertions(+), 24 deletions(-) create mode 100644 example/job/theory/ml/input/predict.json diff --git a/example/job/theory/ml/input.json b/example/job/theory/ml/input.json index f35750ced..6607a3959 100644 --- a/example/job/theory/ml/input.json +++ b/example/job/theory/ml/input.json @@ -1,6 +1,5 @@ { - "type": "predict", - "method": "include(linear.json)", + "...": "include(input/predict.json)", "targetProperties": [ "band_gaps" ], diff --git a/example/job/theory/ml/input/predict.json b/example/job/theory/ml/input/predict.json new file mode 100644 index 000000000..f7888fa3c --- /dev/null +++ b/example/job/theory/ml/input/predict.json @@ -0,0 +1,4 @@ +{ + "type": "predict", + "method": "include(../linear.json)" +} diff --git a/schema/job/theory/ml/_input_fit.json b/schema/job/theory/ml/_input_fit.json index d2b6e04a9..32abcddc6 100644 --- a/schema/job/theory/ml/_input_fit.json +++ b/schema/job/theory/ml/_input_fit.json @@ -1,9 +1,13 @@ { "$schema": "http://json-schema.org/draft-04/schema#", "title": "List of input fit arguments", - "oneOf": [ - { - "$ref": "file:linear/input_fit.json" + "properties": { + "arguments":{ + "oneOf": [ + { + "$ref": "file:linear/input_fit.json" + } + ] } - ] + } } diff --git a/schema/job/theory/ml/input.json b/schema/job/theory/ml/input.json index 595136910..9ac28f518 100644 --- a/schema/job/theory/ml/input.json +++ b/schema/job/theory/ml/input.json @@ -11,26 +11,10 @@ } ], "properties": { - "method": { - "oneOf": [ - { - "description": "pre-trained ml method (when predicting) or an object describing a new one to be fit", - "$ref": "file:../_methods.json" - }, - { - "description": "method read from workflow scope", - "$ref": "file:../../workflow/unit/_input.json" - } - ] - }, "targetProperties": { "description": "target properties to predict", "type": "array" }, - "features": { - "description": "material features used for model fitting", - "type": "array" - }, "exabyteIds": { "description": "List of material ids corresponding to materials used for model fitting or property prediction", "type": "array" diff --git a/schema/job/theory/ml/input/fit.json b/schema/job/theory/ml/input/fit.json index 9fa2b4011..da88e4c92 100644 --- a/schema/job/theory/ml/input/fit.json +++ b/schema/job/theory/ml/input/fit.json @@ -1,6 +1,7 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "fit schema", + "title": "ML methods input schema", + "type": "object", "allOf": [ { "$ref": "file:../_input_fit.json" @@ -11,6 +12,10 @@ "enum": [ "fit" ] + }, + "features": { + "description": "material features used for model fitting", + "type": "array" } } } diff --git a/schema/job/theory/ml/input/predict.json b/schema/job/theory/ml/input/predict.json index 50946dcb7..5cfb1eb1e 100644 --- a/schema/job/theory/ml/input/predict.json +++ b/schema/job/theory/ml/input/predict.json @@ -1,11 +1,24 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "fit schema", + "title": "predict schema", + "type": "object", "properties": { "type": { "enum": [ "predict" ] + }, + "method": { + "oneOf": [ + { + "description": "pre-trained ml method (when predicting) or an object describing a new one to be fit", + "$ref": "file:../_methods.json" + }, + { + "description": "method read from workflow scope", + "$ref": "file:../../../workflow/unit/_input.json" + } + ] } } } From be03ac2201500e8ca15d487e3ef80103563e671d Mon Sep 17 00:00:00 2001 From: Phani Date: Wed, 31 May 2017 12:49:50 -0700 Subject: [PATCH 61/63] removed arguments from fit input --- schema/job/theory/ml/_input_fit.json | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/schema/job/theory/ml/_input_fit.json b/schema/job/theory/ml/_input_fit.json index 32abcddc6..d2b6e04a9 100644 --- a/schema/job/theory/ml/_input_fit.json +++ b/schema/job/theory/ml/_input_fit.json @@ -1,13 +1,9 @@ { "$schema": "http://json-schema.org/draft-04/schema#", "title": "List of input fit arguments", - "properties": { - "arguments":{ - "oneOf": [ - { - "$ref": "file:linear/input_fit.json" - } - ] + "oneOf": [ + { + "$ref": "file:linear/input_fit.json" } - } + ] } From e5060d87f1b430cdaf0af2d08fb86b7e65ba138b Mon Sep 17 00:00:00 2001 From: Phani Date: Wed, 31 May 2017 14:28:49 -0700 Subject: [PATCH 62/63] refactoring and added required properties --- example/job/theory/ml/_input_fit.json | 7 +++++++ example/job/theory/ml/input.json | 11 +++++------ example/job/theory/ml/input/fit.json | 11 +++++++++++ schema/job/theory/ml/_input_fit.json | 21 +++++++++++++++++++++ schema/job/theory/ml/input.json | 17 +++++++++-------- schema/job/theory/ml/input/fit.json | 21 ++++++++++++++++++++- schema/job/theory/ml/input/predict.json | 6 +++++- schema/job/theory/ml/linear.json | 9 ++++++++- 8 files changed, 86 insertions(+), 17 deletions(-) create mode 100644 example/job/theory/ml/_input_fit.json create mode 100644 example/job/theory/ml/input/fit.json diff --git a/example/job/theory/ml/_input_fit.json b/example/job/theory/ml/_input_fit.json new file mode 100644 index 000000000..7335b9e49 --- /dev/null +++ b/example/job/theory/ml/_input_fit.json @@ -0,0 +1,7 @@ +{ + "...": "include(linear/input_fit.json)", + "method": { + "type": "linear", + "subtype": "least_squares" + } +} diff --git a/example/job/theory/ml/input.json b/example/job/theory/ml/input.json index 6607a3959..91bd0a8c5 100644 --- a/example/job/theory/ml/input.json +++ b/example/job/theory/ml/input.json @@ -1,9 +1,8 @@ { "...": "include(input/predict.json)", - "targetProperties": [ - "band_gaps" - ], - "exabyteIds":[ - "LCthJ6E2QabYCZqf3" - ] + "materials": { + "exabyteIds": [ + "LCthJ6E2QabYCZqf3" + ] + } } diff --git a/example/job/theory/ml/input/fit.json b/example/job/theory/ml/input/fit.json new file mode 100644 index 000000000..aa9da396e --- /dev/null +++ b/example/job/theory/ml/input/fit.json @@ -0,0 +1,11 @@ +{ + "...": "include(../_input_fit.json)", + "type": "fit", + "features": [ + "elemental_composition", + "electronegativity" + ], + "properties": [ + "band_gaps" + ] +} diff --git a/schema/job/theory/ml/_input_fit.json b/schema/job/theory/ml/_input_fit.json index d2b6e04a9..9246f5073 100644 --- a/schema/job/theory/ml/_input_fit.json +++ b/schema/job/theory/ml/_input_fit.json @@ -1,9 +1,30 @@ { "$schema": "http://json-schema.org/draft-04/schema#", "title": "List of input fit arguments", + "type": "object", + "properties": { + "method": { + "properties": { + "type": { + "enum": [ + "linear" + ] + }, + "subtype": { + "enum": [ + "least_squares", + "ridge" + ] + } + } + } + }, "oneOf": [ { "$ref": "file:linear/input_fit.json" } + ], + "required": [ + "method" ] } diff --git a/schema/job/theory/ml/input.json b/schema/job/theory/ml/input.json index 9ac28f518..54d9ed884 100644 --- a/schema/job/theory/ml/input.json +++ b/schema/job/theory/ml/input.json @@ -11,16 +11,17 @@ } ], "properties": { - "targetProperties": { - "description": "target properties to predict", - "type": "array" - }, - "exabyteIds": { - "description": "List of material ids corresponding to materials used for model fitting or property prediction", - "type": "array" + "materials": { + "type": "object", + "properties": { + "exabyteIds": { + "description": "List of material ids corresponding to materials used for model fitting or property prediction", + "type": "array" + } + } } }, "required": [ - "exabyteIds" + "materials" ] } diff --git a/schema/job/theory/ml/input/fit.json b/schema/job/theory/ml/input/fit.json index da88e4c92..161f7ffc4 100644 --- a/schema/job/theory/ml/input/fit.json +++ b/schema/job/theory/ml/input/fit.json @@ -16,6 +16,25 @@ "features": { "description": "material features used for model fitting", "type": "array" + }, + "properties": { + "description": "target properties to predict", + "type": "array" + }, + "method": { + "properties": { + "type": { + "type": "string" + }, + "subtype": { + "type": "string" + } + } } - } + }, + "required": [ + "type", + "features", + "properties" + ] } diff --git a/schema/job/theory/ml/input/predict.json b/schema/job/theory/ml/input/predict.json index 5cfb1eb1e..8aae1faf5 100644 --- a/schema/job/theory/ml/input/predict.json +++ b/schema/job/theory/ml/input/predict.json @@ -20,5 +20,9 @@ } ] } - } + }, + "required": [ + "type", + "method" + ] } diff --git a/schema/job/theory/ml/linear.json b/schema/job/theory/ml/linear.json index af204ef61..0b7e5aa17 100644 --- a/schema/job/theory/ml/linear.json +++ b/schema/job/theory/ml/linear.json @@ -30,5 +30,12 @@ } } } - } + }, + "required": [ + "type", + "subtype", + "dataFrame", + "precision", + "data" + ] } From 3949734630bbd13e5f9eb0c7a74fb981aa4ba833 Mon Sep 17 00:00:00 2001 From: Phani Date: Wed, 7 Jun 2017 13:19:35 -0700 Subject: [PATCH 63/63] added arguments to input fit --- example/job/theory/ml/_input_fit.json | 4 +++- schema/job/theory/ml/_input_fit.json | 12 +++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/example/job/theory/ml/_input_fit.json b/example/job/theory/ml/_input_fit.json index 7335b9e49..6ca48974d 100644 --- a/example/job/theory/ml/_input_fit.json +++ b/example/job/theory/ml/_input_fit.json @@ -1,5 +1,7 @@ { - "...": "include(linear/input_fit.json)", + "arguments": { + "...": "include(linear/input_fit.json)" + }, "method": { "type": "linear", "subtype": "least_squares" diff --git a/schema/job/theory/ml/_input_fit.json b/schema/job/theory/ml/_input_fit.json index 9246f5073..71c36c507 100644 --- a/schema/job/theory/ml/_input_fit.json +++ b/schema/job/theory/ml/_input_fit.json @@ -17,13 +17,15 @@ ] } } + }, + "arguments": { + "oneOf": [ + { + "$ref": "file:linear/input_fit.json" + } + ] } }, - "oneOf": [ - { - "$ref": "file:linear/input_fit.json" - } - ], "required": [ "method" ]