{ "$defs": { "ComputationalEnvironment": { "additionalProperties": false, "description": "Description of a computational environment.", "properties": { "type": { "description": "Type of computational environment that can be automatically setup after downloading the model.", "title": "Type", "type": "string" }, "file_paths": { "description": "List of file paths that contain the target environment description, relative to the repository root. E.g., for 'conda', it could be ['environment.yml'].", "items": { "type": "string" }, "title": "File Paths", "type": "array" } }, "required": [ "type", "file_paths" ], "title": "ComputationalEnvironment", "type": "object" }, "ComputationalResources": { "additionalProperties": false, "description": "Computational resources need for a hybrid model or component.", "properties": { "cpus": { "default": [], "items": { "$ref": "#/$defs/Cpu" }, "title": "Cpus", "type": "array" }, "gpus": { "default": [], "items": { "$ref": "#/$defs/Gpu" }, "title": "Gpus", "type": "array" }, "memory": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Memory" }, "storage": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Storage" }, "software": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Software" }, "operating_system": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Operating System" }, "compute_time": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Compute Time" } }, "title": "ComputationalResources", "type": "object" }, "CondaComputationalEnvironment": { "additionalProperties": false, "description": "Conda computational environment.", "properties": { "type": { "description": "Conda computational environment that can be automatically setup after downloading the model.", "pattern": "^conda$", "title": "Type", "type": "string" }, "file_paths": { "description": "List of file paths that contain the conda environment description, relative to the repository root. E.g., 'environment.yml'.", "items": { "type": "string" }, "title": "File Paths", "type": "array" } }, "required": [ "type", "file_paths" ], "title": "CondaComputationalEnvironment", "type": "object" }, "Cpu": { "additionalProperties": false, "description": "Central processing unit (CPU) metadata.", "properties": { "model": { "title": "Model", "type": "string" }, "count": { "default": 1, "title": "Count", "type": "integer" }, "manufacturer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Manufacturer" }, "cores": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Cores" }, "threads": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Threads" }, "cache": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Cache" }, "clock_speed": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Clock Speed" } }, "required": [ "model" ], "title": "Cpu", "type": "object" }, "Data": { "description": "Data structure for input and output data.", "properties": { "name": { "title": "Name", "type": "string" }, "encoding_format": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Encoding Format" }, "identifier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Identifier" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Url" }, "quality": { "anyOf": [ { "type": "integer" }, { "type": "string" }, { "type": "null" } ], "default": null, "title": "Quality" }, "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "precision": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Precision" }, "scale": { "anyOf": [ { "type": "number" }, { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Scale" }, "offset": { "anyOf": [ { "type": "number" }, { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Offset" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Description" }, "min_value": { "anyOf": [ { "type": "number" }, { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Min Value" }, "max_value": { "anyOf": [ { "type": "number" }, { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Max Value" }, "temporal_coverage": { "anyOf": [ { "type": "string" }, { "format": "date", "type": "string" }, { "type": "null" } ], "default": null, "title": "Temporal Coverage" }, "spatial_coverage": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Spatial Coverage" }, "spatial_resolution": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Spatial Resolution" }, "temporal_resolution": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Temporal Resolution" } }, "required": [ "name" ], "title": "Data", "type": "object" }, "DataIO": { "description": "Collection of input and output data for a hybrid model.", "properties": { "inputs": { "default": [], "items": { "$ref": "#/$defs/Data" }, "title": "Inputs", "type": "array" }, "outputs": { "default": [], "items": { "$ref": "#/$defs/Data" }, "title": "Outputs", "type": "array" } }, "title": "DataIO", "type": "object" }, "Gpu": { "additionalProperties": false, "description": "Graphics processing unit (GPU) metadata.", "properties": { "model": { "title": "Model", "type": "string" }, "count": { "default": 1, "title": "Count", "type": "integer" }, "manufacturer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Manufacturer" }, "memory": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Memory" }, "memory_bandwidth": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Memory Bandwidth" }, "clock_speed": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Clock Speed" }, "cuda_cores": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Cuda Cores" }, "tensor_cores": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Tensor Cores" }, "rt_cores": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Rt Cores" }, "ray_tracing": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Ray Tracing" } }, "required": [ "model" ], "title": "Gpu", "type": "object" }, "HybridModelFromFile": { "additionalProperties": false, "description": "Hybrid model.", "properties": { "created": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "default": null, "description": "Date when the hybrid model was created. (e.g. 2000-12-31).", "title": "Created" }, "description": { "description": "Summarized description of the hybrid model. Can be formatted with HTML tags.", "minLength": 1, "title": "Description", "type": "string" }, "hidden": { "default": false, "description": "Indicates whether the hybrid model is hidden within the FRAME library. Hidden models remain accessible if their ID is known.", "title": "Hidden", "type": "boolean" }, "id": { "description": "Short name that serves as unique identifier for the hybrid model. Should be all lowercase and contain no spaces (use \"_\" instead) or special characters.", "minLength": 1, "pattern": "^[a-z0-9_]+$", "title": "Id", "type": "string" }, "keywords": { "description": "List of keywords that describe the hybrid model.", "items": { "type": "string" }, "minItems": 1, "title": "Keywords", "type": "array" }, "name": { "description": "Full name of the hybrid model.", "minLength": 1, "title": "Name", "type": "string" }, "contributors": { "description": "List of contributor names.", "items": { "type": "string" }, "minItems": 1, "title": "Contributors", "type": "array" }, "documentation": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "List of URLs or DOIs for documentation.", "title": "Documentation" }, "identifier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Digital Object Identifier (DOI).", "title": "Identifier" }, "license": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "License short name.", "title": "License" }, "readme": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "URL to a Markdown README file.", "title": "Readme" }, "url": { "description": "Repository URL. Preferably not referring to a specific version. If referring to a fixed version, also fill in the 'version' field.", "minLength": 1, "title": "Url", "type": "string" }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Version number or name. Preferably following Semantic Versioning 'X.Y.Z', see https://semver.org.", "title": "Version" }, "ml_process": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Ml Process" }, "host_physics": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Host Physics" }, "latent_variables": { "default": [], "items": { "$ref": "#/$defs/Data" }, "title": "Latent Variables", "type": "array" }, "computational_environment": { "anyOf": [ { "items": { "anyOf": [ { "$ref": "#/$defs/CondaComputationalEnvironment" }, { "$ref": "#/$defs/PythonComputationalEnvironment" }, { "$ref": "#/$defs/JuliaComputationalEnvironment" }, { "$ref": "#/$defs/ComputationalEnvironment" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Computational Environment" } }, "required": [ "description", "id", "keywords", "name", "contributors", "url" ], "title": "HybridModelFromFile", "type": "object" }, "JuliaComputationalEnvironment": { "additionalProperties": false, "description": "Julia computational environment.", "properties": { "type": { "description": "Julia computational environment that can be automatically setup after downloading the model.", "pattern": "^julia$", "title": "Type", "type": "string" }, "file_paths": { "description": "List of file paths that contain the julia environment description, relative to the repository root. E.g., 'Project.toml', 'Manifest.toml'.", "items": { "type": "string" }, "title": "File Paths", "type": "array" } }, "required": [ "type", "file_paths" ], "title": "JuliaComputationalEnvironment", "type": "object" }, "MachineLearningComponentFromFile": { "additionalProperties": false, "description": "Machine learning component.", "properties": { "description": { "description": "Summarized description of the component. Can be formatted with HTML tags.", "minLength": 1, "title": "Description", "type": "string" }, "created": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "default": null, "description": "Date when the component was created (e.g. 2000-12-31). If not provided, will be filled with the associated hybrid model's creation date.", "title": "Created" }, "id": { "description": "Short name that serves as unique identifier for the component. Should be all lowercase and contain no spaces (use \"_\" instead) or special characters.", "minLength": 1, "pattern": "^[a-z0-9_]+$", "title": "Id", "type": "string" }, "keywords": { "default": [], "description": "List of keywords that describe the hybrid model. If not provided, will be filled with the associated hybrid model's keywords.", "items": { "type": "string" }, "title": "Keywords", "type": "array" }, "name": { "description": "Full name of the component.", "minLength": 1, "title": "Name", "type": "string" }, "contributors": { "default": [], "description": "List of contributor names. If not provided, will be filled with the associated hybrid model's contributors.", "items": { "type": "string" }, "title": "Contributors", "type": "array" }, "documentation": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "List of URLs or DOIs for documentation. If not provided, will be filled with the associated hybrid model's list of documentation.", "title": "Documentation" }, "identifier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Digital Object Identifier (DOI). If not provided, will be filled with the associated hybrid model's DOI.", "title": "Identifier" }, "license": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "License short name. If not provided, will be filled with the associated hybrid model's license.", "title": "License" }, "readme": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "URL to a Markdown README file. If not provided, will be filled with the associated hybrid model's README URL.", "title": "Readme" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Repository URL. If not provided, will be filled with the associated hybrid model's repository URL.", "title": "Url" }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Version number or name. If not provided, will be filled with the associated hybrid model's version.", "title": "Version" }, "ml_process": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Ml Process" }, "neural_networks": { "anyOf": [ { "items": { "$ref": "#/$defs/NeuralNetwork" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Neural Networks" } }, "required": [ "description", "id", "name" ], "title": "MachineLearningComponentFromFile", "type": "object" }, "MachineLearningComponentReference": { "additionalProperties": false, "description": "Reference to an existing machine learning component.", "properties": { "id": { "description": "ID of a component defined in another metadata file, that is compatible with the hybrid model defined in this file. Only the ID is required, the other fields should not be set.", "title": "Id", "type": "string" } }, "required": [ "id" ], "title": "MachineLearningComponentReference", "type": "object" }, "NeuralNetwork": { "additionalProperties": false, "description": "Neural network metadata.", "properties": { "name": { "title": "Name", "type": "string" }, "type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Type" }, "layer_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Layer Count" }, "node_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Node Count" }, "batch_size": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Batch Size" }, "learning_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Learning Rate" }, "predictor_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Predictor Count" }, "activation_functions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Activation Functions" }, "input_scaling": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Input Scaling" }, "initialization": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Initialization" }, "loss_function": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Loss Function" }, "regularization": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Regularization" }, "optimization_method": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Optimization Method" }, "host_physics_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Host Physics Model" }, "target_variables": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Target Variables" }, "training_requirements": { "anyOf": [ { "$ref": "#/$defs/TrainingRequirements" }, { "type": "null" } ], "default": null }, "training_resources": { "anyOf": [ { "$ref": "#/$defs/ComputationalResources" }, { "type": "null" } ], "default": null } }, "required": [ "name" ], "title": "NeuralNetwork", "type": "object" }, "PhysicsBasedComponentFromFile": { "additionalProperties": false, "description": "Physics-based component.", "properties": { "description": { "description": "Summarized description of the component. Can be formatted with HTML tags.", "minLength": 1, "title": "Description", "type": "string" }, "created": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "default": null, "description": "Date when the component was created (e.g. 2000-12-31). If not provided, will be filled with the associated hybrid model's creation date.", "title": "Created" }, "id": { "description": "Short name that serves as unique identifier for the component. Should be all lowercase and contain no spaces (use \"_\" instead) or special characters.", "minLength": 1, "pattern": "^[a-z0-9_]+$", "title": "Id", "type": "string" }, "keywords": { "default": [], "description": "List of keywords that describe the hybrid model. If not provided, will be filled with the associated hybrid model's keywords.", "items": { "type": "string" }, "title": "Keywords", "type": "array" }, "name": { "description": "Full name of the component.", "minLength": 1, "title": "Name", "type": "string" }, "contributors": { "default": [], "description": "List of contributor names. If not provided, will be filled with the associated hybrid model's contributors.", "items": { "type": "string" }, "title": "Contributors", "type": "array" }, "documentation": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "List of URLs or DOIs for documentation. If not provided, will be filled with the associated hybrid model's list of documentation.", "title": "Documentation" }, "identifier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Digital Object Identifier (DOI). If not provided, will be filled with the associated hybrid model's DOI.", "title": "Identifier" }, "license": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "License short name. If not provided, will be filled with the associated hybrid model's license.", "title": "License" }, "readme": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "URL to a Markdown README file. If not provided, will be filled with the associated hybrid model's README URL.", "title": "Readme" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Repository URL. If not provided, will be filled with the associated hybrid model's repository URL.", "title": "Url" }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Version number or name. If not provided, will be filled with the associated hybrid model's version.", "title": "Version" }, "type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Type" }, "fixed_parameters_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Fixed Parameters Count" }, "tunable_parameters_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Tunable Parameters Count" }, "state_variables_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "State Variables Count" }, "temporal_coverage": { "anyOf": [ { "type": "string" }, { "format": "date", "type": "string" }, { "type": "null" } ], "default": null, "title": "Temporal Coverage" }, "spatial_coverage": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Spatial Coverage" }, "spatial_resolution": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Spatial Resolution" }, "temporal_resolution": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Temporal Resolution" }, "vertical_discretization": { "anyOf": [ { "$ref": "#/$defs/VerticalDiscretization" }, { "type": "null" } ], "default": null }, "lateral_flow": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Lateral Flow" }, "related_identifiers": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Related Identifiers" }, "testing_resources": { "anyOf": [ { "$ref": "#/$defs/ComputationalResources" }, { "type": "null" } ], "default": null } }, "required": [ "description", "id", "name" ], "title": "PhysicsBasedComponentFromFile", "type": "object" }, "PhysicsBasedComponentReference": { "additionalProperties": false, "description": "Reference to an existing physics-based component.", "properties": { "id": { "description": "ID of a component defined in another metadata file, that is compatible with the hybrid model defined in this file. Only the ID is required, the other fields should not be set.", "title": "Id", "type": "string" } }, "required": [ "id" ], "title": "PhysicsBasedComponentReference", "type": "object" }, "PythonComputationalEnvironment": { "additionalProperties": false, "description": "Python computational environment.", "properties": { "type": { "description": "Python computational environment that can be automatically setup after downloading the model.", "pattern": "^python$", "title": "Type", "type": "string" }, "file_paths": { "description": "List of file paths that contain the python environment description, relative to the repository root. E.g., 'requirements.txt', 'pyproject.toml'.", "items": { "type": "string" }, "title": "File Paths", "type": "array" } }, "required": [ "type", "file_paths" ], "title": "PythonComputationalEnvironment", "type": "object" }, "TrainingRequirements": { "additionalProperties": false, "description": "Training requirements for a machine learning component.", "properties": { "gpu": { "default": false, "title": "Gpu", "type": "boolean" }, "cpu": { "default": false, "title": "Cpu", "type": "boolean" } }, "title": "TrainingRequirements", "type": "object" }, "VerticalDiscretization": { "additionalProperties": false, "description": "Vertical discretization of a physics-based component.", "properties": { "soil": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Soil" }, "vegetation": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Vegetation" } }, "title": "VerticalDiscretization", "type": "object" } }, "additionalProperties": false, "description": "Metadata fields for a metadata file.", "properties": { "frame_metadata_version": { "pattern": "^1\\.0$", "title": "Frame Metadata Version", "type": "string" }, "hybrid_model": { "$ref": "#/$defs/HybridModelFromFile" }, "physics_based_components": { "default": [], "items": { "anyOf": [ { "$ref": "#/$defs/PhysicsBasedComponentReference" }, { "$ref": "#/$defs/PhysicsBasedComponentFromFile" } ] }, "title": "Physics Based Components", "type": "array" }, "machine_learning_components": { "default": [], "items": { "anyOf": [ { "$ref": "#/$defs/MachineLearningComponentReference" }, { "$ref": "#/$defs/MachineLearningComponentFromFile" } ] }, "title": "Machine Learning Components", "type": "array" }, "data": { "$ref": "#/$defs/DataIO", "default": { "inputs": [], "outputs": [] } } }, "required": [ "frame_metadata_version", "hybrid_model" ], "title": "MetadataFromFile", "type": "object" }