erDiagram
    USER ||--|| FULL_NAME : has
    USER ||--|| EMAIL : has

    USER ||--0| PROJECT : owns
    USER ||--0| MODEL : owns
    USER ||--0| DATASET : owns
    USER ||--0| SEGMENTATION : owns
    USER ||--0| ANNOTATION : owns


    MODEL ||--|| TITLE : has
    MODEL ||--|| DESCRIPTION : has
    MODEL ||--|| CHECKPOINT : has


    PROJECT ||--|| TITLE : has
    PROJECT ||--|| START-DATE : has
    PROJECT ||--|| STOP-DATE : has
    PROJECT ||--|| DESCRIPTION : has

    PROJECT ||--|{ INTEREST : contains
    PROJECT |0--|{ DATASET : contains
    PROJECT |0--|{ MODEL : uses


    INTEREST ||--|| TITLE : has


    DATASET ||--|| TITLE : has
    DATASET ||--|| DESCRIPTION : has
    DATASET ||--|| FILE-TYPE : has
    DATASET ||--|| LOCATION : has
    DATASET ||--|| RESOLUTION-X : hasdatasets = relationship("Dataset", back_populates="owner")
    DATASET ||--|| RESOLUTION-Y : has
    DATASET ||--|| RESOLUTION-Z : has
    DATASET ||--|| MODALITY : has

    DATASET ||--0{ ANNOTATION : contains
    DATASET ||--0{ SEGMENTATION : contains


    ANNOTATION ||--|| FILE-TYPE : has
    ANNOTATION ||--|| LOCATION : has
    ANNOTATION ||--|| TITLE : has
    ANNOTATION ||--|| DESCRIPTION : has

    ANNOTATION }|--0| SEGMENTATION : from-segmentation


    SEGMENTATION ||--|| FILE-TYPE : has
    SEGMENTATION ||--|| LOCATION : has
    SEGMENTATION ||--|| TITLE : has
    SEGMENTATION ||--|| DESCRIPTION : has

    SEGMENTATION }|--|| MODEL : from-model
