# `DerivaML` Class

The DerivaML class provides a range of methods to interact with a Deriva catalog.
These methods assume tha tthe catalog contains a ```deriva-ml``` and a domain schema.

**Data Catalog**: The catalog must include both the domain schema and a standard ML schema for effective data management.


![ERD](../assets/ERD.png)


  - **Domain schema**: The domain schema includes the data collected or generated by domain-specific experiments or systems.
  - **ML schema**: Each entity in the ML schema is designed to capture details of the ML development process. It including the following tables
    - A *Dataset* represents a data collection, such as aggregation identified for training, validation, and testing purposes.
    - A *Workflow* represents a specific sequence of computational steps or human interactions.
    - An *Execution* is an instance of a workflow that a user instantiates at a specific time. 
    - An *Execution Asset* is an output file that results from the execution of a workflow.
    - An *Execution Metadata* is an asset entity for saving metadata files referencing a given execution.

::: deriva_ml.deriva_ml_base
    handler: python

