The CAMSAI Standards repository defines and maintains a set of consistent schemas, validation tools, and data standards for materials science data and AI-driven research workflows. These standards ensure the interoperability, reproducibility, and scalability of materials-related datasets and applications across the CAMSAI ecosystem.
This repository provides:
- Data Models: Pydantic-based schemas for defining and validating data structures.
- Validation Utilities: Tools to ensure data compliance with established standards.
- Interoperability Support: Standards that facilitate seamless collaboration between different systems, tools, and workflows.
-
Schema Definitions
- Comprehensive data models for common materials science objects.
- Designed for compatibility with CAMSAI workflows and third-party applications.
-
Validation Tools
- Python utilities to validate data against the defined standards.
- Example workflows for integrating validation into your projects.
-
Interoperability
- Supports data exchange and integration across various CAMSAI and external platforms.
src/py/camsai/standards
Contains Python files defining the Pydantic schemas for various data models by source/provider (e.g., Mat3ra.com).
You can install the repository using pip
(requires Python 3.8+):
pip install camsai-standards
or from GitHub:
pip install git+https://github.com/camsai/standards.git
Install the package in a Pyodide-based JupyterLite environment:
await micropip.install("camsai-standards")
from camsai.standards.mat3ra import Mat3raMaterialSchema
from camsai.standards import is_valid
# Example material data
material_data = {...}
# Validate data
if is_valid(Mat3raMaterialSchema, material_data):
print("Valid material data")
else:
print("Invalid material data")
from mat3ra.esse.data.examples import EXAMPLES
example_material = next((e for e in EXAMPLES if e["path"] == "material"), None)["data"]
print(example_material)
We welcome contributions! To contribute:
- Fork the repository.
- Create a branch for your changes:
git checkout -b feature/new-schema
- Commit your changes and open a pull request.
Please ensure all contributions are consistent with existing standards and include tests where applicable.
This repository is licensed under the Apache License 2.0. See the LICENSE file for details.
For questions or feedback, contact us at: