Create an experiment object for the subject and image group. Objects
        are referenced by their identifier. The reference to a functional data
        object is optional.

        Raises ValueError if no valid experiment name is given in property list.

        Parameters
        ----------
        model_id : string
            Unique model identifier
        properties : Dictionary
            Dictionary of model specific properties.
        parameters : list(scodata.attribute.AttributeDefinition)
            List of attribute definitions for model run parameters
        outputs : ModelOutputs
            Description of model outputs
        connector : dict
            Connection information to communicate with model workers

        Returns
        -------
        ModelHandle
            Handle for created model object in database

def register_model(self, model_id, properties, parameters, outputs, connector):
        """Create an experiment object for the subject and image group. Objects
        are referenced by their identifier. The reference to a functional data
        object is optional.

        Raises ValueError if no valid experiment name is given in property list.

        Parameters
        ----------
        model_id : string
            Unique model identifier
        properties : Dictionary
            Dictionary of model specific properties.
        parameters : list(scodata.attribute.AttributeDefinition)
            List of attribute definitions for model run parameters
        outputs : ModelOutputs
            Description of model outputs
        connector : dict
            Connection information to communicate with model workers

        Returns
        -------
        ModelHandle
            Handle for created model object in database
        """
        # Create object handle and store it in database before returning it
        obj = ModelHandle(model_id, properties, parameters, outputs, connector)
        self.insert_object(obj)
        return obj